|
|
@ -47,7 +47,7 @@ namespace IRaCIS.Application.Services
|
|
|
|
public async Task<PageOutput<TrialDetailDTO>> GetTrialList(TrialQueryDTO searchParam)
|
|
|
|
public async Task<PageOutput<TrialDetailDTO>> GetTrialList(TrialQueryDTO searchParam)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
var multiModalityIdSelectCount = searchParam.ModalityIds.Count;
|
|
|
|
var multiModalityIdSelectCount = searchParam.ModalityIds.Count;
|
|
|
|
var multiCriteriaSelectCount = searchParam.CriterionIds.Count;
|
|
|
|
var multiCriteriaSelectCount = searchParam.CriterionIds.Count;
|
|
|
|
var multiReviewTypeSelectCount = searchParam.ReviewTypeIds.Count;
|
|
|
|
var multiReviewTypeSelectCount = searchParam.ReviewTypeIds.Count;
|
|
|
|
|
|
|
|
|
|
|
@ -78,7 +78,7 @@ namespace IRaCIS.Application.Services
|
|
|
|
.WhereIf(!string.IsNullOrWhiteSpace(searchParam.ExperimentName), o => o.ExperimentName.Contains(searchParam.ExperimentName))
|
|
|
|
.WhereIf(!string.IsNullOrWhiteSpace(searchParam.ExperimentName), o => o.ExperimentName.Contains(searchParam.ExperimentName))
|
|
|
|
.WhereIf(searchParam.PhaseId != null, o => o.PhaseId == searchParam.PhaseId)
|
|
|
|
.WhereIf(searchParam.PhaseId != null, o => o.PhaseId == searchParam.PhaseId)
|
|
|
|
|
|
|
|
|
|
|
|
.WhereIf(searchParam.DeclarationTypeEnumList.Count>0 , trialDeclarationTypeExpression)
|
|
|
|
.WhereIf(searchParam.DeclarationTypeEnumList.Count > 0, trialDeclarationTypeExpression)
|
|
|
|
.WhereIf(searchParam.AttendedReviewerTypeEnumList.Count > 0, trialAttendedReviewerTypeExpression)
|
|
|
|
.WhereIf(searchParam.AttendedReviewerTypeEnumList.Count > 0, trialAttendedReviewerTypeExpression)
|
|
|
|
|
|
|
|
|
|
|
|
//.WhereIf(searchParam.AttendedReviewerType != null, o => o.AttendedReviewerType == searchParam.AttendedReviewerType)
|
|
|
|
//.WhereIf(searchParam.AttendedReviewerType != null, o => o.AttendedReviewerType == searchParam.AttendedReviewerType)
|
|
|
@ -91,7 +91,7 @@ namespace IRaCIS.Application.Services
|
|
|
|
.WhereIf(multiModalityIdSelectCount > 0, t => t.TrialDicList.Count(t => t.KeyName == StaticData.Modality) == multiModalityIdSelectCount)
|
|
|
|
.WhereIf(multiModalityIdSelectCount > 0, t => t.TrialDicList.Count(t => t.KeyName == StaticData.Modality) == multiModalityIdSelectCount)
|
|
|
|
.WhereIf(multiCriteriaSelectCount > 0, t => t.TrialDicList.Count(t => t.KeyName == StaticData.Criterion) == multiCriteriaSelectCount)
|
|
|
|
.WhereIf(multiCriteriaSelectCount > 0, t => t.TrialDicList.Count(t => t.KeyName == StaticData.Criterion) == multiCriteriaSelectCount)
|
|
|
|
.WhereIf(multiReviewTypeSelectCount > 0, t => t.TrialDicList.Count(t => t.KeyName == StaticData.ReviewType) == multiReviewTypeSelectCount)
|
|
|
|
.WhereIf(multiReviewTypeSelectCount > 0, t => t.TrialDicList.Count(t => t.KeyName == StaticData.ReviewType) == multiReviewTypeSelectCount)
|
|
|
|
.WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin, t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id && t.IsDeleted==false) && t.IsDeleted == false)
|
|
|
|
.WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin, t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id && t.IsDeleted == false) && t.IsDeleted == false)
|
|
|
|
.ProjectTo<TrialDetailDTO>(_mapper.ConfigurationProvider, new { userTypeEnumInt = _userInfo.UserTypeEnumInt, userId = _userInfo.Id });
|
|
|
|
.ProjectTo<TrialDetailDTO>(_mapper.ConfigurationProvider, new { userTypeEnumInt = _userInfo.UserTypeEnumInt, userId = _userInfo.Id });
|
|
|
|
|
|
|
|
|
|
|
|
return await query.ToPagedListAsync(searchParam.PageIndex, searchParam.PageSize, string.IsNullOrWhiteSpace(searchParam.SortField) ? "CreateTime" : searchParam.SortField, searchParam.Asc);
|
|
|
|
return await query.ToPagedListAsync(searchParam.PageIndex, searchParam.PageSize, string.IsNullOrWhiteSpace(searchParam.SortField) ? "CreateTime" : searchParam.SortField, searchParam.Asc);
|
|
|
@ -177,7 +177,7 @@ namespace IRaCIS.Application.Services
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (await _trialRepository.AnyAsync(u => u.TrialCode == trialAddModel.TrialCode))
|
|
|
|
if (await _trialRepository.AnyAsync(u => u.TrialCode == trialAddModel.TrialCode))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//---已经存在相同的项目编号。
|
|
|
|
//---已经存在相同的项目编号。
|
|
|
|
throw new BusinessValidationFailedException(_localizer["Trial_DuplicateProjectNumber"]);
|
|
|
|
throw new BusinessValidationFailedException(_localizer["Trial_DuplicateProjectNumber"]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -236,14 +236,14 @@ namespace IRaCIS.Application.Services
|
|
|
|
|
|
|
|
|
|
|
|
if (!await _repository.AnyAsync<Trial>(u => u.Id == trialAddModel.Id && (u.TrialStatusStr == StaticData.TrialState.TrialInitializing || u.TrialStatusStr == StaticData.TrialState.TrialOngoing)))
|
|
|
|
if (!await _repository.AnyAsync<Trial>(u => u.Id == trialAddModel.Id && (u.TrialStatusStr == StaticData.TrialState.TrialInitializing || u.TrialStatusStr == StaticData.TrialState.TrialOngoing)))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//---项目状态只有处于:初始化或者进行中时,才允许操作。
|
|
|
|
//---项目状态只有处于:初始化或者进行中时,才允许操作。
|
|
|
|
throw new BusinessValidationFailedException(_localizer["Trial_InvalidProjectStatus"]);
|
|
|
|
throw new BusinessValidationFailedException(_localizer["Trial_InvalidProjectStatus"]);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 判断项目Id 是否已经存在
|
|
|
|
// 判断项目Id 是否已经存在
|
|
|
|
if (await _repository.AnyAsync<Trial>(u => u.TrialCode == updateModel.TrialCode && u.Id != updateModel.Id))
|
|
|
|
if (await _repository.AnyAsync<Trial>(u => u.TrialCode == updateModel.TrialCode && u.Id != updateModel.Id))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//---已经存在相同的项目编号。
|
|
|
|
//---已经存在相同的项目编号。
|
|
|
|
throw new BusinessValidationFailedException(_localizer["Trial_DuplicateProjectNumber"]);
|
|
|
|
throw new BusinessValidationFailedException(_localizer["Trial_DuplicateProjectNumber"]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -382,7 +382,7 @@ namespace IRaCIS.Application.Services
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary> 真删除项目 方便清理测试数据 </summary>
|
|
|
|
/// <summary> 真删除项目 方便清理测试数据 </summary>
|
|
|
|
/// <param name="trialId">临床试验项目Id</param>
|
|
|
|
/// <param name="trialId">临床试验项目Id</param>
|
|
|
|
|
|
|
|
[AllowAnonymous]
|
|
|
|
[HttpDelete, Route("{trialId:guid}")]
|
|
|
|
[HttpDelete, Route("{trialId:guid}")]
|
|
|
|
public async Task<IResponseOutput> DeleteTrial(Guid trialId)
|
|
|
|
public async Task<IResponseOutput> DeleteTrial(Guid trialId)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -434,142 +434,129 @@ namespace IRaCIS.Application.Services
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var success = await _repository.BatchDeleteAsync<CheckChallengeDialog>(o => o.SubjectVisit.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<CheckChallengeDialog>(o => o.SubjectVisit.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ClinicalDataTrialSet>(o => o.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ClinicalDataTrialSet>(o => o.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ConsistencyCheckFile>(o => o.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ConsistencyCheckFile>(o => o.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<CriterionNidusSystem>(o => o.TrialReadingCriterion.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<DataInspection>(o => o.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<DicomStudy>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<StudyMonitor>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<DicomSeries>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<DicomInstance>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<EnrollReadingCategory>(t => t.Enroll.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<Enroll>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<EnrollDetail>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<NoneDicomStudyFile>(t => t.NoneDicomStudy.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<NoneDicomStudy>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<OrganTrialInfo>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<CriterionNidusSystem>(o => o.TrialReadingCriterion.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<PaymentAdjustment>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<PaymentDetail>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<DataInspection>(o => o.TrialId == trialId) ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<DicomStudy>(t => t.TrialId == trialId) ||
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<StudyMonitor>(t => t.TrialId == trialId) ||
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<DicomSeries>(t => t.TrialId == trialId) ||
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<DicomInstance>(t => t.TrialId == trialId) ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<EnrollReadingCategory>(t => t.Enroll.TrialId == trialId) ||
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<Enroll>(t => t.TrialId == trialId) ||
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<EnrollDetail>(t => t.TrialId == trialId) ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<NoneDicomStudyFile>(t => t.NoneDicomStudy.TrialId == trialId) ||
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<NoneDicomStudy>(t => t.TrialId == trialId) ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<OrganTrialInfo>(t => t.TrialId == trialId) ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<PaymentAdjustment>(t => t.TrialId == trialId) ||
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<PaymentDetail>(t => t.TrialId == trialId) ||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<PreviousHistory>(t => t.SubjectVisit.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<PreviousHistory>(t => t.SubjectVisit.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<PreviousOther>(t => t.SubjectVisit.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<PreviousOther>(t => t.SubjectVisit.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<PreviousPDF>(t => t.SubjectVisit.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<PreviousPDF>(t => t.SubjectVisit.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<QCChallengeDialog>(t => t.QCChallenge.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<QCChallengeDialog>(t => t.QCChallenge.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<QCChallenge>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<QCChallenge>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<ReadingClinicalDataPDF>(t => t.ReadingClinicalData.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingClinicalDataPDF>(t => t.ReadingClinicalData.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingClinicalData>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingClinicalData>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingGlobalTaskInfo>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingGlobalTaskInfo>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingJudgeInfo>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingJudgeInfo>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<ReadingMedicalReviewDialog>(t => t.TaskMedicalReview.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingMedicalReviewDialog>(t => t.TaskMedicalReview.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingMedicineQuestionAnswer>(t => t.TaskMedicalReview.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingMedicineQuestionAnswer>(t => t.TaskMedicalReview.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingMedicineTrialQuestion>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingMedicineTrialQuestion>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<ReadingOncologyTaskInfo>(t => t.VisitTask.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingOncologyTaskInfo>(t => t.VisitTask.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingPeriodPlan>(t => t.ReadingPeriodSet.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingPeriodPlan>(t => t.ReadingPeriodSet.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingPeriodSet>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingPeriodSet>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<ReadingQuestionTrial>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingQuestionTrial>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTableAnswerRowInfo>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTableAnswerRowInfo>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTableQuestionAnswer>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTableQuestionAnswer>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTableQuestionTrial>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTableQuestionTrial>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTaskQuestionAnswer>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTaskQuestionAnswer>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTaskRelation>(t => t.VisitTask.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTaskRelation>(t => t.VisitTask.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadModule>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadModule>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTaskQuestionAnswer>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingTaskQuestionAnswer>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<SubjectCanceDoctor>(t => t.Subject.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<SubjectCanceDoctor>(t => t.Subject.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<SubjectUser>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<SubjectUser>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<Subject>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<Subject>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<SubjectVisit>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<SubjectVisit>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<TaskAllocationRule>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TaskAllocationRule>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TaskConsistentRule>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TaskConsistentRule>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TaskInfluence>(t => t.InfluenceTask.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TaskInfluence>(t => t.InfluenceTask.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TaskMedicalReview>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TaskMedicalReview>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TaskMedicalReviewRule>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TaskMedicalReviewRule>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<TrialStateChange>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialStateChange>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialPaymentPrice>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialPaymentPrice>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<Trial>(o => o.Id == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<Trial>(o => o.Id == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialClinicalDataSetCriterion>(t => t.TrialReadingCriterion.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialClinicalDataSetCriterion>(t => t.TrialReadingCriterion.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialCriterionDictionaryCode>(t => t.TrialReadingCriterion.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialCriterionDictionaryCode>(t => t.TrialReadingCriterion.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<ReadingQuestionCriterionTrial>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<ReadingQuestionCriterionTrial>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialDictionary>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialDictionary>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialDocConfirmedUser>(t => t.TrialDocument.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialDocConfirmedUser>(t => t.TrialDocument.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<TrialDocument>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialDocument>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialDocNeedConfirmedUserType>(t => t.TrialDocument.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialDocNeedConfirmedUserType>(t => t.TrialDocument.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<TrialEmailNoticeUser>(t => t.TrialEmailNoticeConfig.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialEmailNoticeUser>(t => t.TrialEmailNoticeConfig.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
//await _repository.BatchDeleteAsync<TrialExperience>(t => t.TrialId == trialId) ||
|
|
|
|
//await _repository.BatchDeleteAsync<TrialExperience>(t => t.TrialId == trialId) ;
|
|
|
|
await _repository.BatchDeleteAsync<TrialEmailNoticeUser>(t => t.TrialEmailNoticeConfig.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialEmailNoticeUser>(t => t.TrialEmailNoticeConfig.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialEmailNoticeConfig>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialEmailNoticeConfig>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<TrialExternalUser>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialExternalUser>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<TrialPaymentPrice>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialPaymentPrice>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<TrialQCQuestion>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialQCQuestion>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialQCQuestionAnswer>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialQCQuestionAnswer>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<TrialRevenuesPrice>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialRevenuesPrice>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialRevenuesPriceVerification>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialRevenuesPriceVerification>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<TrialSign>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialSign>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialSite>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialSite>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialSiteSurvey>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialSiteSurvey>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialSiteUserSurvey>(t => t.TrialSiteSurvey.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialSiteUserSurvey>(t => t.TrialSiteSurvey.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialSiteEquipmentSurvey>(t => t.TrialSiteSurvey.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialSiteEquipmentSurvey>(t => t.TrialSiteSurvey.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<TrialUser>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialUser>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialSiteUser>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialSiteUser>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<VisitStage>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<VisitStage>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<VisitPlanInfluenceStat>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<VisitPlanInfluenceStat>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<VisitPlanInfluenceStudy>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<VisitPlanInfluenceStudy>(t => t.TrialId == trialId);
|
|
|
|
|
|
|
|
|
|
|
|
await _repository.BatchDeleteAsync<VisitTaskReReading>(t => t.OriginalReReadingTask.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<VisitTaskReReading>(t => t.OriginalReReadingTask.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<VisitTask>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<VisitTask>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialAttachment>(t => t.TrialId == trialId) ||
|
|
|
|
await _repository.BatchDeleteAsync<TrialAttachment>(t => t.TrialId == trialId);
|
|
|
|
await _repository.BatchDeleteAsync<TrialStateChange>(t => t.TrialId == trialId)
|
|
|
|
await _repository.BatchDeleteAsync<TrialStateChange>(t => t.TrialId == trialId) ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Ok();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Result(success);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|