Merge branch 'master' of http://192.168.1.2:8033/IRaCIS_Core_Api
This commit is contained in:
@@ -7,6 +7,8 @@ using Microsoft.AspNetCore.Mvc;
|
||||
using Panda.DynamicWebApi.Attributes;
|
||||
using IRaCIS.Core.Infrastructure;
|
||||
using Microsoft.Extensions.Options;
|
||||
using static IRaCIS.Core.Domain.Share.StaticData;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
|
||||
namespace IRaCIS.Application.Services
|
||||
{
|
||||
@@ -139,7 +141,7 @@ namespace IRaCIS.Application.Services
|
||||
}
|
||||
|
||||
//测试用户 只能创建非正式项目
|
||||
if(_userInfo.IsTestUser && trialAddModel.TrialType != TrialType.NoneOfficial)
|
||||
if (_userInfo.IsTestUser && trialAddModel.TrialType != TrialType.NoneOfficial)
|
||||
{
|
||||
throw new BusinessValidationFailedException("测试用户 只能创建非正式项目");
|
||||
}
|
||||
@@ -162,7 +164,7 @@ namespace IRaCIS.Application.Services
|
||||
var yearStr = DateTime.Now.Year.ToString();
|
||||
|
||||
trial.Code = currentYearMaxCodeNext;
|
||||
trial.TrialCode = (trial.TrialType == TrialType.NoneOfficial ? "T0" :yearStr.Substring(yearStr.Length - 2)) + trial.TrialCode + currentYearMaxCodeNext.ToString("D3");
|
||||
trial.TrialCode = (trial.TrialType == TrialType.NoneOfficial ? "T0" : yearStr.Substring(yearStr.Length - 2)) + trial.TrialCode + currentYearMaxCodeNext.ToString("D3");
|
||||
|
||||
|
||||
//多选信息
|
||||
@@ -350,10 +352,10 @@ namespace IRaCIS.Application.Services
|
||||
{
|
||||
|
||||
|
||||
var trial = (await _trialRepository.FirstOrDefaultAsync(u => u.Id == trialId,true)).IfNullThrowException();
|
||||
var trial = (await _trialRepository.FirstOrDefaultAsync(u => u.Id == trialId, true)).IfNullThrowException();
|
||||
|
||||
|
||||
if (_verifyConfig.CurrentValue.OpenTrialRelationDelete )
|
||||
if (_verifyConfig.CurrentValue.OpenTrialRelationDelete)
|
||||
{
|
||||
|
||||
#region 项目真删除废弃
|
||||
@@ -396,60 +398,139 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
|
||||
|
||||
var success = await _repository.BatchDeleteAsync<Trial>(o => o.Id == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialStateChange>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialPaymentPrice>(t => t.TrialId == trialId) ||
|
||||
var success = await _repository.BatchDeleteAsync<CheckChallengeDialog>(o => o.SubjectVisit.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ClinicalDataTrialSet>(o => o.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ConsistencyCheckFile>(o => o.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<TrialUser>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialDictionary>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialSiteUser>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<VisitStage>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<CriterionNidus>(o => o.TrialReadingCriterion.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ReadingCriterionDictionary>(o => o.TrialReadingCriterion.TrialId == trialId) ||
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<TrialDocument>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialDocNeedConfirmedUserType>(t => t.TrialDocument.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialDocConfirmedUser>(t => t.TrialDocument.TrialId == trialId) ||
|
||||
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<Enroll>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<EnrollDetail>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<PaymentAdjustment>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<PaymentDetail>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialAttachment>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialRevenuesPrice>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialSign>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialRevenuesPrice>(t => t.TrialId == trialId) ||
|
||||
|
||||
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<TrialSiteSurvey>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialSiteUserSurvey>(t => t.TrialSiteSurvey.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialSiteEquipmentSurvey>(t => t.TrialSiteSurvey.TrialId == trialId) ||
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<Subject>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<SubjectVisit>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialQCQuestion>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialQCQuestionAnswer>(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<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<StudyMonitor>(t => t.TrialId == trialId) ||
|
||||
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<PreviousHistory>(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<NoneDicomStudyFile>(t => t.NoneDicomStudy.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<NoneDicomStudy>(t => t.TrialId == trialId)
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<QCChallengeDialog>(t => t.QCChallenge.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<QCChallenge>(t => t.TrialId == trialId) ||
|
||||
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<ReadingClinicalDataPDF>(t => t.ReadingClinicalData.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ReadingClinicalData>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ReadingGlobalTaskInfo>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ReadingJudgeInfo>(t => t.TrialId == trialId) ||
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<ReadingMedicalReviewDialog>(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<ReadingOncologyTaskInfo>(t => t.VisitTask.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ReadingPeriodPlan>(t => t.ReadingPeriodSet.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ReadingPeriodSet>(t => t.TrialId == trialId) ||
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<ReadingQuestionTrial>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ReadingTableAnswerRowInfo>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<ReadingTableQuestionAnswer>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ReadingTableQuestionTrial>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ReadingTaskQuestionAnswer>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<ReadingTaskRelation>(t => t.VisitTask.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ReadModule>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<ReadingTaskQuestionAnswer>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<SubjectCanceDoctor>(t => t.Subject.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<SubjectUser>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<Subject>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<SubjectVisit>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<TaskAllocationRule>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TaskConsistentRule>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TaskInfluence>(t => t.InfluenceTask.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TaskMedicalReview>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TaskMedicalReviewRule>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<TrialStateChange>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialPaymentPrice>(t => t.TrialId == trialId) ||
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<Trial>(o => o.Id == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialClinicalDataSetCriterion>(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<TrialDictionary>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialDocConfirmedUser>(t => t.TrialDocument.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<TrialDocument>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialDocNeedConfirmedUserType>(t => t.TrialDocument.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<TrialEmailNoticeUser>(t => t.TrialEmailNoticeConfig.TrialId == trialId) ||
|
||||
|
||||
//await _repository.BatchDeleteAsync<TrialExperience>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialEmailNoticeUser>(t => t.TrialEmailNoticeConfig.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialEmailNoticeConfig>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<TrialExternalUser>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<TrialPaymentPrice>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<TrialQCQuestion>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialQCQuestionAnswer>(t => t.TrialId == trialId) ||
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<TrialRevenuesPrice>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialRevenuesPriceVerification>(t => t.TrialId == trialId) ||
|
||||
|
||||
|
||||
|
||||
await _repository.BatchDeleteAsync<TrialSign>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialSite>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialSiteSurvey>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialSiteUserSurvey>(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<TrialSiteUser>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<VisitStage>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<VisitPlanInfluenceStat>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<VisitPlanInfluenceStudy>(t => t.TrialId == trialId) ||
|
||||
|
||||
await _repository.BatchDeleteAsync<VisitTaskReReading>(t => t.OriginalReReadingTask.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<VisitTask>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialAttachment>(t => t.TrialId == trialId) ||
|
||||
await _repository.BatchDeleteAsync<TrialStateChange>(t => t.TrialId == trialId)
|
||||
|
||||
|
||||
|
||||
|
||||
;
|
||||
|
||||
return ResponseOutput.Result(success);
|
||||
@@ -464,7 +545,41 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpDelete, Route("{trialId:guid}")]
|
||||
public async Task<IResponseOutput> DeleteTrialTaskData(Guid trialId)
|
||||
{
|
||||
|
||||
//await _repository.BatchDeleteAsync<ReadingMedicineTrialQuestion>(t => t.TrialId == trialId) ||
|
||||
// await _repository.BatchDeleteAsync<ReadingQuestionTrial>(t => t.TrialId == trialId) ||
|
||||
// await _repository.BatchDeleteAsync<ReadingTableQuestionTrial>(t => t.TrialId == trialId) ||
|
||||
|
||||
|
||||
|
||||
|
||||
//await _repository.BatchDeleteAsync<ReadingGlobalTaskInfo>(t => t.TrialId == trialId);
|
||||
// await _repository.BatchDeleteAsync<ReadingJudgeInfo>(t => t.TrialId == trialId);
|
||||
|
||||
|
||||
// await _repository.BatchDeleteAsync<ReadingMedicalReviewDialog>(t => t.TaskMedicalReview.TrialId == trialId);
|
||||
// await _repository.BatchDeleteAsync<ReadingMedicineQuestionAnswer>(t => t.TaskMedicalReview.TrialId == trialId);
|
||||
|
||||
|
||||
// await _repository.BatchDeleteAsync<ReadingOncologyTaskInfo>(t => t.VisitTask.TrialId == trialId);
|
||||
|
||||
// await _repository.BatchDeleteAsync<ReadingTableAnswerRowInfo>(t => t.TrialId == trialId);
|
||||
|
||||
// await _repository.BatchDeleteAsync<ReadingTableQuestionAnswer>(t => t.TrialId == trialId);
|
||||
// await _repository.BatchDeleteAsync<ReadingTaskQuestionAnswer>(t => t.TrialId == trialId) ;
|
||||
|
||||
// await _repository.BatchDeleteAsync<ReadingTaskRelation>(t => t.VisitTask.TrialId == trialId);
|
||||
// await _repository.BatchDeleteAsync<ReadingTaskQuestionAnswer>(t => t.TrialId == trialId);
|
||||
|
||||
// await _repository.BatchDeleteAsync<VisitTaskReReading>(t => t.OriginalReReadingTask.TrialId == trialId);
|
||||
// await _repository.BatchDeleteAsync<VisitTask>(t => t.TrialId == trialId);
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<PageOutput<TrialDetailDTO>> GetReviewerTrialListByEnrollmentStatus(TrialByStatusQueryDTO param)
|
||||
@@ -528,7 +643,7 @@ namespace IRaCIS.Application.Services
|
||||
/// <returns></returns>
|
||||
[HttpPost("{trialId:guid}/{status:int}")]
|
||||
|
||||
[TypeFilter(typeof(TrialResourceFilter),Arguments = new object[] { "AfterStopCannNotOpt" })]
|
||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
||||
public async Task<IResponseOutput> UpdateEnrollStatus(Guid trialId, EnrollStatus status)
|
||||
{
|
||||
await _repository.AddAsync(new EnrollDetail()
|
||||
|
||||
Reference in New Issue
Block a user