Test.EIImageViewer
he 2022-04-20 16:12:36 +08:00
parent 4b7435660f
commit 0f9607674d
3 changed files with 25 additions and 41 deletions

View File

@ -569,8 +569,9 @@ namespace IRaCIS.Core.API.Controllers
{
return ResponseOutput.NotOk(fun.ErrorMessage);
}
opt.AuditInfo.VisitStageId = Guid.Parse(fun.Data);
opt.OptCommand.Id = Guid.Parse(fun.Data);
opt.AuditInfo.VisitStageId = fun.Data.Id;
opt.OptCommand.Id = fun.Data.Id;
return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, null, fun);
}
@ -599,6 +600,7 @@ namespace IRaCIS.Core.API.Controllers
public async Task<IResponseOutput> ConfirmTrialVisitPlan(DataInspectionDto<IDDto> opt)
{
var fun = _visitPlanService.ConfirmTrialVisitPlan;
opt.AuditInfo.NeedSava = false;
return await _inspectionService.Enforcement(opt.OptCommand.Id, opt.AuditInfo, opt.SignInfo, fun);
}

View File

@ -6,7 +6,7 @@ namespace IRaCIS.Application.Interfaces
{
public interface IVisitPlanService
{
Task<IResponseOutput<string>> AddOrUpdateVisitStage(VisitPlanCommand visitPlan);
Task<IResponseOutput<VisitStage>> AddOrUpdateVisitStage(VisitPlanCommand visitPlan);
Task<IResponseOutput> ConfirmTrialVisitPlan(Guid trialId);
Task<IResponseOutput> DeleteVisitStage(Guid id);
Task<IActionResult> DownloadInflunceStudyList(Guid visitPlanInfluenceStatId);

View File

@ -11,6 +11,7 @@ using Magicodes.ExporterAndImporter.Excel;
using Magicodes.ExporterAndImporter.Excel.AspNetCore;
using IRaCIS.Core.Application.Service.Inspection.Interface;
using Newtonsoft.Json;
using IRaCIS.Core.Infrastructure;
namespace IRaCIS.Application.Services
{
@ -89,13 +90,14 @@ namespace IRaCIS.Application.Services
/// <summary> 添加或更新访视计划某项[New]</summary>
[HttpPost]
[UnitOfWork]
public async Task<IResponseOutput<string>> AddOrUpdateVisitStage(VisitPlanCommand visitPlan)
public async Task<IResponseOutput<VisitStage>> AddOrUpdateVisitStage(VisitPlanCommand visitPlan)
{
DateTime createtime = DateTime.Now;
List<DataInspection> datas = new List<DataInspection>();
if (!await _trialRepository.Where(t => t.Id == visitPlan.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialOngoing || t.TrialStatusStr == StaticData.TrialInitializing))
{
return ResponseOutput.NotOk(" only in Initializing or Ongoing State can operate ");
throw new BusinessValidationFailedException(" only in Initializing or Ongoing State can operate ");
}
var visitPlanList = await _visitStageRepository.Where(t => t.TrialId == visitPlan.TrialId,ignoreQueryFilters:true)
@ -112,7 +114,8 @@ namespace IRaCIS.Application.Services
//比当前 visitNum小的 visitDay的最大值 还小 不允许添加
if (visitPlan.VisitDay <= visitPlanList.Where(t => t.VisitNum < visitPlan.VisitNum).Select(t => t.VisitDay).Max())
{
return ResponseOutput.NotOk("For the visit plan, the VisitDay with a larger VisitNum should be larger than the VisitDay with a smaller VisitNum.");
throw new BusinessValidationFailedException(" For the visit plan, the VisitDay with a larger VisitNum should be larger than the VisitDay with a smaller VisitNum.");
}
}
@ -120,7 +123,7 @@ namespace IRaCIS.Application.Services
{
if (visitPlan.VisitDay >= visitPlanList.Where(t => t.VisitNum > visitPlan.VisitNum).Select(t => t.VisitDay).Min())
{
return ResponseOutput.NotOk("For the visit plan, the VisitDay with a larger VisitNum should be larger than the VisitDay with a smaller VisitNum.");
throw new BusinessValidationFailedException("For the visit plan, the VisitDay with a larger VisitNum should be larger than the VisitDay with a smaller VisitNum.");
}
}
@ -129,12 +132,12 @@ namespace IRaCIS.Application.Services
if (await _visitStageRepository.AnyAsync(t => t.TrialId == visitPlan.TrialId && (t.VisitName == visitPlan.VisitName || t.VisitNum == visitPlan.VisitNum), true))
{
return ResponseOutput.NotOk("A visit with the same VisitName/VisitNum already existed in the current visit plan.");
throw new BusinessValidationFailedException("A visit with the same VisitName/VisitNum already existed in the current visit plan.");
}
if (await _visitStageRepository.AnyAsync(t => t.TrialId == visitPlan.TrialId && t.IsBaseLine, true) && visitPlan.IsBaseLine)
{
return ResponseOutput.NotOk("A visit already is baseline in the current visit plan.");
throw new BusinessValidationFailedException("A visit already is baseline in the current visit plan.");
}
//已添加受试者 都不存在该新增的计划名称 那么该项目所有受试者都增加一个访视记录
@ -158,19 +161,7 @@ namespace IRaCIS.Application.Services
{
svItem.VisitExecuted = VisitExecutedEnum.Unavailable;
}
//datas.Add(new DataInspection()
//{
// SubjectVisitId = svItem.Id,
// SubjectVisitName = svItem.VisitName,
// BlindName = visitPlan.BlindName,
// Identification = "Add|Visit|Info|Visit-Image Upload",
// SiteId = svItem.SiteId,
// TrialId = svItem.TrialId,
// SubjectId = svItem.SubjectId,
// IsSign = false,
// CreateTime = createtime,
// JsonDetail = JsonConvert.SerializeObject(svItem)
//});
await _repository.AddAsync(svItem);
@ -184,16 +175,7 @@ namespace IRaCIS.Application.Services
var result = await _repository.AddAsync(visitPlanItem);
visitPlan.Id = result.Id;
//datas.Add(new DataInspection()
//{
// BlindName = visitPlan.BlindName,
// Identification = "Add|Visit|Info|Visit-Image Upload",
// TrialId = visitPlan.TrialId,
// IsSign = false,
// CreateTime = createtime.AddSeconds(1),
// VisitStageId = result.Id,
// JsonDetail = JsonConvert.SerializeObject(visitPlan)
//});
//更新项目访视计划状态为未确认
await _trialRepository.BatchUpdateAsync(u => u.Id == visitPlan.TrialId, t => new Trial() { VisitPlanConfirmed = false });
@ -202,7 +184,7 @@ namespace IRaCIS.Application.Services
//return ResponseOutput.Ok(result.Id.ToString());
return ResponseOutput.Ok(visitPlanItem);
}
else//update
@ -211,25 +193,25 @@ namespace IRaCIS.Application.Services
if (await _visitStageRepository.AnyAsync(t => t.TrialId == visitPlan.TrialId && (t.VisitName == visitPlan.VisitName || t.VisitNum == visitPlan.VisitNum) && t.Id != visitPlan.Id,true))
{
return ResponseOutput.NotOk("A visit with the same VisitName/VisitNum already existed in the current visit plan.");
throw new BusinessValidationFailedException("A visit with the same VisitName/VisitNum already existed in the current visit plan.");
}
if (await _visitStageRepository.AnyAsync(t => t.TrialId == visitPlan.TrialId && t.IsBaseLine && t.Id != visitPlan.Id,true) && visitPlan.IsBaseLine)
{
return ResponseOutput.NotOk("A visit already is baseline in the current visit plan.");
throw new BusinessValidationFailedException("A visit already is baseline in the current visit plan.");
}
var stage = await _visitStageRepository.FirstOrDefaultAsync(t => t.Id == visitPlan.Id,true);
if (stage == null) return ResponseOutput.NotOk("None");
if (stage == null) throw new BusinessValidationFailedException("None");
//修改是否是基线
if (stage.IsBaseLine && stage.IsBaseLine != visitPlan.IsBaseLine)
{
if (await _repository.Where<SubjectVisit>(t => t.TrialId == visitPlan.TrialId).AnyAsync(v => v.IsBaseLine && v.SubmitState >= SubmitStateEnum.ToSubmit))
{
return ResponseOutput.NotOk("有CRC已经为基线上传了影像数据,不允许修改基线");
throw new BusinessValidationFailedException("有CRC已经为基线上传了影像数据,不允许修改基线");
}
}
@ -241,13 +223,13 @@ namespace IRaCIS.Application.Services
//await _trialRepository.UpdateFromQueryAsync(u => u.Id == visitPlan.TrialId, t => new Trial() { VisitPlanConfirmed = false });
await _repository.SaveChangesAsync();
return ResponseOutput.Ok(stage);
//return ResponseOutput.Ok();
}
await _inspectionService.AddListInspectionRecordAsync(datas);
return ResponseOutput.Ok(visitPlan.Id.Value.ToString());
}
/// <summary> 删除项目计划某一项[New]</summary>