修改稽查
parent
5f86ea555a
commit
e4fd46deae
|
@ -238,22 +238,6 @@ namespace IRaCIS.Core.API.Controllers
|
|||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 签名确认
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost, Route("Inspection/configTrialBasicInfo/TrialConfigSignatureConfirm")]
|
||||
[UnitOfWork]
|
||||
public async Task<IResponseOutput> TrialConfigSignatureConfirm(DataInspectionDto<SignConfirmDTO> opt)
|
||||
{
|
||||
var singid = await _inspectionService.RecordSing(opt.SignInfo);
|
||||
var result = await _trialConfigService.TrialConfigSignatureConfirm(opt.Data);
|
||||
await _inspectionService.CompletedSign(singid, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
@ -293,6 +277,21 @@ namespace IRaCIS.Core.API.Controllers
|
|||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 签名确认
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost, Route("Inspection/configTrialBasicInfo/TrialConfigSignatureConfirm")]
|
||||
[UnitOfWork]
|
||||
public async Task<IResponseOutput> TrialConfigSignatureConfirm(DataInspectionDto<SignConfirmDTO> opt)
|
||||
{
|
||||
var singid = await _inspectionService.RecordSing(opt.SignInfo);
|
||||
var result = await _trialConfigService.TrialConfigSignatureConfirm(opt.Data);
|
||||
await _inspectionService.CompletedSign(singid, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// CRC RequestToQC 批量提交
|
||||
|
|
|
@ -146,12 +146,6 @@
|
|||
<param name="opt"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.API.Controllers.InspectionController.TrialConfigSignatureConfirm(IRaCIS.Core.Application.Service.Inspection.DTO.DataInspectionDto{IRaCIS.Core.Application.Contracts.SignConfirmDTO})">
|
||||
<summary>
|
||||
签名确认
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.API.Controllers.InspectionController.ConfigTrialProcessInfoConfirm(IRaCIS.Core.Application.Service.Inspection.DTO.DataInspectionDto{IRaCIS.Core.Application.Contracts.TrialProcessConfig})">
|
||||
<summary>
|
||||
配置流程并确认
|
||||
|
@ -166,6 +160,12 @@
|
|||
<param name="opt"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.API.Controllers.InspectionController.TrialConfigSignatureConfirm(IRaCIS.Core.Application.Service.Inspection.DTO.DataInspectionDto{IRaCIS.Core.Application.Contracts.SignConfirmDTO})">
|
||||
<summary>
|
||||
签名确认
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.API.Controllers.InspectionController.CRCRequestToQC(IRaCIS.Core.Application.Service.Inspection.DTO.DataInspectionDto{IRaCIS.Core.Application.Contracts.CRCRequestToQCCommand})">
|
||||
<summary>
|
||||
CRC RequestToQC 批量提交
|
||||
|
|
|
@ -6210,6 +6210,20 @@
|
|||
<param name="trialConfig"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.TrialConfigService.ConfigTrialProcessInfo(IRaCIS.Core.Application.Contracts.TrialProcessConfig)">
|
||||
<summary>
|
||||
配置流程
|
||||
</summary>
|
||||
<param name="trialConfig"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.TrialConfigService.ConfigTrialUrgentInfo(IRaCIS.Core.Application.Contracts.TrialUrgentConfig)">
|
||||
<summary>
|
||||
配置加急信息
|
||||
</summary>
|
||||
<param name="trialConfig"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.TrialConfigService.UpdateTrialState(System.Guid,System.String,System.String)">
|
||||
<summary>
|
||||
更新项目状态
|
||||
|
@ -6241,20 +6255,6 @@
|
|||
<param name="trialId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.TrialConfigService.ConfigTrialProcessInfo(IRaCIS.Core.Application.Contracts.TrialProcessConfig)">
|
||||
<summary>
|
||||
配置流程
|
||||
</summary>
|
||||
<param name="trialConfig"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.TrialConfigService.ConfigTrialUrgentInfo(IRaCIS.Core.Application.Contracts.TrialUrgentConfig)">
|
||||
<summary>
|
||||
配置加急信息
|
||||
</summary>
|
||||
<param name="trialConfig"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.TrialConfigService.ConfigTrialTaskInfo(IRaCIS.Core.Application.Contracts.TrialTaskConfig)">
|
||||
<summary>
|
||||
配置项目任务信息
|
||||
|
|
|
@ -1699,7 +1699,6 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
await this.SaveVisitTaskQuestions(inDto);
|
||||
|
||||
|
||||
|
||||
await this.SubmitTaskChangeState(inDto.VisitTaskId);
|
||||
return ResponseOutput.Ok(true);
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 配置流程
|
||||
/// </summary>
|
||||
/// <param name="trialConfig"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[Authorize(Policy = IRaCISPolicy.PM_APM)]
|
||||
public async Task<IResponseOutput> 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());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 配置加急信息
|
||||
/// </summary>
|
||||
/// <param name="trialConfig"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[Authorize(Policy = IRaCISPolicy.PM_APM)]
|
||||
public async Task<IResponseOutput> 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<SubjectVisit>(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
|
|||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 配置流程
|
||||
/// </summary>
|
||||
/// <param name="trialConfig"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[Authorize(Policy = IRaCISPolicy.PM_APM)]
|
||||
public async Task<IResponseOutput> 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());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 配置加急信息
|
||||
/// </summary>
|
||||
/// <param name="trialConfig"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[Authorize(Policy = IRaCISPolicy.PM_APM)]
|
||||
public async Task<IResponseOutput> 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<SubjectVisit>(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());
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
|
Loading…
Reference in New Issue