diff --git a/IRaCIS.Core.API/Controllers/InspectionController.cs b/IRaCIS.Core.API/Controllers/InspectionController.cs
index e5b986529..804352e82 100644
--- a/IRaCIS.Core.API/Controllers/InspectionController.cs
+++ b/IRaCIS.Core.API/Controllers/InspectionController.cs
@@ -238,22 +238,6 @@ namespace IRaCIS.Core.API.Controllers
}
- ///
- /// 签名确认
- ///
- ///
- [HttpPost, Route("Inspection/configTrialBasicInfo/TrialConfigSignatureConfirm")]
- [UnitOfWork]
- public async Task TrialConfigSignatureConfirm(DataInspectionDto opt)
- {
- var singid = await _inspectionService.RecordSing(opt.SignInfo);
- var result = await _trialConfigService.TrialConfigSignatureConfirm(opt.Data);
- await _inspectionService.CompletedSign(singid, result);
- return result;
- }
-
-
-
///
@@ -293,6 +277,21 @@ namespace IRaCIS.Core.API.Controllers
return result;
}
+ ///
+ /// 签名确认
+ ///
+ ///
+ [HttpPost, Route("Inspection/configTrialBasicInfo/TrialConfigSignatureConfirm")]
+ [UnitOfWork]
+ public async Task TrialConfigSignatureConfirm(DataInspectionDto opt)
+ {
+ var singid = await _inspectionService.RecordSing(opt.SignInfo);
+ var result = await _trialConfigService.TrialConfigSignatureConfirm(opt.Data);
+ await _inspectionService.CompletedSign(singid, result);
+ return result;
+ }
+
+
///
/// CRC RequestToQC 批量提交
diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml
index caae87353..465b8c92b 100644
--- a/IRaCIS.Core.API/IRaCIS.Core.API.xml
+++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml
@@ -146,12 +146,6 @@
-
-
- 签名确认
-
-
-
配置流程并确认
@@ -166,6 +160,12 @@
+
+
+ 签名确认
+
+
+
CRC RequestToQC 批量提交
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 8fc76543b..7bf001a6a 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -6210,6 +6210,20 @@
+
+
+ 配置流程
+
+
+
+
+
+
+ 配置加急信息
+
+
+
+
更新项目状态
@@ -6241,20 +6255,6 @@
-
-
- 配置流程
-
-
-
-
-
-
- 配置加急信息
-
-
-
-
配置项目任务信息
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
index 4e4403518..2a81c1179 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
@@ -1699,7 +1699,6 @@ namespace IRaCIS.Application.Services
{
await this.SaveVisitTaskQuestions(inDto);
-
await this.SubmitTaskChangeState(inDto.VisitTaskId);
return ResponseOutput.Ok(true);
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
index 3ca662fb5..bb6f0c08b 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
@@ -438,8 +438,9 @@ namespace IRaCIS.Core.Application
{
await _trialRepository.UpdatePartialFromQueryAsync(t => t.Id == signConfirmDTO.TrialId, u => new Trial() { IsTrialUrgentConfirmed = true });
}
-
- else if (signConfirmDTO.SignCode == ((int)SignEnum.TrialQCQuestionConfirm).ToString())
+ else
+
+ if (signConfirmDTO.SignCode == ((int)SignEnum.TrialQCQuestionConfirm).ToString())
{
var trialConfig = (await _trialRepository
@@ -510,6 +511,129 @@ namespace IRaCIS.Core.Application
+ return ResponseOutput.Ok(await _repository.SaveChangesAsync());
+ }
+
+ ///
+ /// 配置流程
+ ///
+ ///
+ ///
+ [HttpPut]
+ [Authorize(Policy = IRaCISPolicy.PM_APM)]
+ public async Task ConfigTrialProcessInfo(TrialProcessConfig trialConfig)
+ {
+ if (!await _trialRepository.Where(t => t.Id == trialConfig.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialState.TrialInitializing))
+ {
+ return ResponseOutput.NotOk("该项目当前状态不是初始化,不允许进行该操作。");
+ }
+
+ if (trialConfig.TrialCriterionIds.Count() > 1)
+ {
+ throw new BusinessValidationFailedException("项目最多可选择一个标准。");
+ }
+
+
+ var trialInfo = await _trialRepository.Where(t => t.Id == trialConfig.TrialId, true).Include(t => t.TrialDicList.Where(u => u.KeyName == StaticData.Criterion)).FirstOrDefaultAsync();
+ if (trialInfo == null) return Null404NotFound(trialInfo);
+ if (trialConfig.IsReadingTaskViewInOrder)
+ {
+ trialConfig.ReadingTaskViewEnum = ReadingTaskViewMethod.ReadingPeriodOrVisit;
+ }
+ else
+ {
+ trialConfig.ReadingTaskViewEnum = ReadingTaskViewMethod.Subject;
+ trialConfig.IsReadingShowPreviousResults = false;
+ trialConfig.IsReadingShowSubjectInfo = false;
+ trialConfig.ArbitrationRule = ArbitrationRule.Visit;
+ }
+
+
+
+ _mapper.Map(trialConfig, trialInfo);
+
+ if (trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading ?? false))
+ {
+ trialInfo.ArbitrationRule = ArbitrationRule.Reading;
+ }
+
+ if (!trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading ?? false))
+ {
+ trialInfo.ArbitrationRule = ArbitrationRule.Visit;
+ }
+ trialInfo.UpdateTime = DateTime.Now;
+
+ // 修改临床数据
+ var noconfirmids = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialConfig.TrialId && !trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
+ foreach (var item in trialConfig.ClinicalDataTrialSetIds)
+ {
+ await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
+ {
+
+ IsConfirm = true
+ });
+ }
+
+ foreach (var item in noconfirmids)
+ {
+ await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
+ {
+
+ IsConfirm = false
+ });
+ }
+
+ // 修改阅片标准
+ var cancelConfirmCriterionIds = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialConfig.TrialId && x.IsConfirm && !trialConfig.TrialCriterionIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
+
+ await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => cancelConfirmCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
+ {
+ IsConfirm = false
+ });
+
+ await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => trialConfig.TrialCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
+ {
+ IsConfirm = true
+ }); ;
+
+
+
+
+ return ResponseOutput.Ok(await _repository.SaveChangesAsync());
+ }
+
+ ///
+ /// 配置加急信息
+ ///
+ ///
+ ///
+ [HttpPut]
+ [Authorize(Policy = IRaCISPolicy.PM_APM)]
+ public async Task ConfigTrialUrgentInfo(TrialUrgentConfig trialConfig)
+ {
+
+ await VerifyOnlyInOngoingOrInitialIzingOptAsync(trialConfig.TrialId);
+
+
+ var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException();
+
+
+ //项目紧急 当前所有已提交,但未完成的访视,设置为加急。后续提交的访视也设置为加急 (在提交的时候,回去判断 项目加急,Subject加急,是否入组确认,是否Pd,从而设置访视是否加急)
+ if (trialConfig.IsUrgent)
+ {
+
+ await _repository.BatchUpdateAsync(t => t.TrialId == trialInfo.Id && t.SubmitState == SubmitStateEnum.Submitted && t.ForwardState < ForwardStateEnum.Forwarded,
+ s => new SubjectVisit() { IsUrgent = trialConfig.IsUrgent });
+ }
+ else //之前设置为加急的访视状态不变。后续提交的访视,为不加急。
+ {
+
+ }
+
+ _mapper.Map(trialConfig, trialInfo);
+
+ trialInfo.UpdateTime = DateTime.Now;
+
return ResponseOutput.Ok(await _repository.SaveChangesAsync());
}
@@ -639,128 +763,7 @@ namespace IRaCIS.Core.Application
- ///
- /// 配置流程
- ///
- ///
- ///
- [HttpPut]
- [Authorize(Policy = IRaCISPolicy.PM_APM)]
- public async Task ConfigTrialProcessInfo(TrialProcessConfig trialConfig)
- {
- if (!await _trialRepository.Where(t => t.Id == trialConfig.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialState.TrialInitializing))
- {
- return ResponseOutput.NotOk("该项目当前状态不是初始化,不允许进行该操作。");
- }
- if (trialConfig.TrialCriterionIds.Count() > 1)
- {
- throw new BusinessValidationFailedException("项目最多可选择一个标准。");
- }
-
-
- var trialInfo = await _trialRepository.Where(t => t.Id == trialConfig.TrialId, true).Include(t => t.TrialDicList.Where(u => u.KeyName == StaticData.Criterion)).FirstOrDefaultAsync();
- if (trialInfo == null) return Null404NotFound(trialInfo);
- if (trialConfig.IsReadingTaskViewInOrder)
- {
- trialConfig.ReadingTaskViewEnum = ReadingTaskViewMethod.ReadingPeriodOrVisit;
- }
- else
- {
- trialConfig.ReadingTaskViewEnum = ReadingTaskViewMethod.Subject;
- trialConfig.IsReadingShowPreviousResults = false;
- trialConfig.IsReadingShowSubjectInfo = false;
- trialConfig.ArbitrationRule = ArbitrationRule.Visit;
- }
-
-
-
- _mapper.Map(trialConfig, trialInfo);
-
- if (trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading??false))
- {
- trialInfo.ArbitrationRule = ArbitrationRule.Reading;
- }
-
- if (!trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading ?? false))
- {
- trialInfo.ArbitrationRule = ArbitrationRule.Visit;
- }
- trialInfo.UpdateTime = DateTime.Now;
-
- // 修改临床数据
- var noconfirmids = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialConfig.TrialId && !trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
- foreach (var item in trialConfig.ClinicalDataTrialSetIds)
- {
- await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
- {
-
- IsConfirm = true
- });
- }
-
- foreach (var item in noconfirmids)
- {
- await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
- {
-
- IsConfirm = false
- });
- }
-
- // 修改阅片标准
- var cancelConfirmCriterionIds = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialConfig.TrialId && x.IsConfirm && !trialConfig.TrialCriterionIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
-
- await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => cancelConfirmCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
- {
- IsConfirm = false
- });
-
- await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => trialConfig.TrialCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
- {
- IsConfirm = true
- }); ;
-
-
-
-
- return ResponseOutput.Ok(await _repository.SaveChangesAsync());
- }
-
- ///
- /// 配置加急信息
- ///
- ///
- ///
- [HttpPut]
- [Authorize(Policy = IRaCISPolicy.PM_APM)]
- public async Task ConfigTrialUrgentInfo(TrialUrgentConfig trialConfig)
- {
-
- await VerifyOnlyInOngoingOrInitialIzingOptAsync(trialConfig.TrialId);
-
-
- var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException();
-
-
- //项目紧急 当前所有已提交,但未完成的访视,设置为加急。后续提交的访视也设置为加急 (在提交的时候,回去判断 项目加急,Subject加急,是否入组确认,是否Pd,从而设置访视是否加急)
- if (trialConfig.IsUrgent)
- {
-
- await _repository.BatchUpdateAsync(t => t.TrialId == trialInfo.Id && t.SubmitState == SubmitStateEnum.Submitted && t.ForwardState < ForwardStateEnum.Forwarded,
- s => new SubjectVisit() { IsUrgent = trialConfig.IsUrgent });
- }
- else //之前设置为加急的访视状态不变。后续提交的访视,为不加急。
- {
-
- }
-
- _mapper.Map(trialConfig, trialInfo);
-
- trialInfo.UpdateTime = DateTime.Now;
-
- return ResponseOutput.Ok(await _repository.SaveChangesAsync());
- }
///