修改接口参数
parent
7a744293e5
commit
993085f894
|
@ -201,10 +201,10 @@ namespace IRaCIS.Core.API.Controllers
|
|||
public async Task<IResponseOutput> AddOrUpdateQCChallenge(DataInspectionDto<AddOrUpdateQCChallengeDto> opt)
|
||||
{
|
||||
var fun = await _qCOperationService.AddOrUpdateQCChallenge(opt.OptCommand.qaQuestionCommand, opt.OptCommand.trialId, opt.OptCommand.trialQCProcess, opt.OptCommand.currentQCType);
|
||||
opt.AuditInfo.GeneralId = fun.Id;
|
||||
Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
|
||||
keyValuePairs.Add("ChallengeCode", "Q" + fun.ChallengeCode.ToString("D5"));
|
||||
opt.AuditInfo.JsonDetail = _inspectionService.AddJsonItem(opt.AuditInfo.JsonDetail, keyValuePairs);
|
||||
//opt.AuditInfo.GeneralId = fun.Id;
|
||||
//Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
|
||||
//keyValuePairs.Add("ChallengeCode", "Q" + fun.ChallengeCode.ToString("D5"));
|
||||
//opt.AuditInfo.JsonDetail = _inspectionService.AddJsonItem(opt.AuditInfo.JsonDetail, keyValuePairs);
|
||||
return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, null, ResponseOutput.Ok());
|
||||
}
|
||||
|
||||
|
|
|
@ -246,7 +246,7 @@ namespace IRaCIS.Core.Application.Service.Inspection.DTO
|
|||
{
|
||||
public string ManualPassReason { get; set; } = string.Empty;
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public Guid SubjectVisitId { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ using Microsoft.AspNetCore.Mvc;
|
|||
namespace IRaCIS.Core.Application.Image.QA
|
||||
{
|
||||
public interface IQCOperationService
|
||||
{
|
||||
{
|
||||
Task<IResponseOutput> CheckBack(Guid subjectVisitId);
|
||||
Task<IResponseOutput> SetNeedReupload(Guid trialId, Guid qcChallengeId);
|
||||
Task<IResponseOutput> QCPassedOrFailed(Guid trialId, Guid subjectVisitId, [FromRoute] AuditStateEnum auditState);
|
||||
|
@ -19,8 +19,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
|
||||
|
||||
Task<IResponseOutput<CheckChallengeDialog>> AddCheckChallengeReply(CheckChallengeDialogCommand checkDialogCommand);
|
||||
Task<QCChallenge> AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType);
|
||||
Task<IResponseOutput> AddCheckChallengeReply(CheckChallengeDialogCommand checkDialogCommand);
|
||||
Task<IResponseOutput> AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType);
|
||||
Task<IResponseOutput> AddOrUpdateQCQuestionAnswerList(QCQuestionAnswerCommand[] qcQuestionAnswerCommands, Guid trialId, Guid subjectVisitId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType);
|
||||
Task<IResponseOutput> AddQCChallengeReply(QADialogCommand qaDialogCommand);
|
||||
Task<IResponseOutput> CloseCheckChallenge(CloseCheckChallengeDto input);
|
||||
|
|
|
@ -17,12 +17,9 @@ using Microsoft.AspNetCore.Authorization;
|
|||
using WinSCP;
|
||||
using Magicodes.ExporterAndImporter.Excel;
|
||||
using Newtonsoft.Json;
|
||||
using IRaCIS.Core.Application.Service.Inspection.Interface;
|
||||
using IRaCIS.Core.Infrastructure;
|
||||
using IRaCIS.Core.Application.Service.Inspection.DTO;
|
||||
using Nito.AsyncEx;
|
||||
using IRaCIS.Application.Interfaces;
|
||||
using IRaCIS.Core.Domain.Common;
|
||||
|
||||
namespace IRaCIS.Core.Application.Image.QA
|
||||
{
|
||||
|
@ -34,13 +31,9 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||||
private readonly IRepository<QCChallenge> _qcChallengeRepository;
|
||||
private readonly IRepository<DicomStudy> _dicomStudyRepository;
|
||||
private readonly IRepository<Dictionary> _dictionaryrepository;
|
||||
private readonly IRepository<Subject> _subjectRepository;
|
||||
private readonly IRepository<Trial> _trialRepository;
|
||||
private readonly IMediator _mediator;
|
||||
private readonly IInspectionService _inspectionService;
|
||||
private readonly IDictionaryService _dictionaryService;
|
||||
private object _locker = new object();
|
||||
|
||||
private readonly AsyncLock _mutex = new AsyncLock();
|
||||
|
||||
|
@ -48,10 +41,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
IRepository<QCChallenge> qcChallengeRepository,
|
||||
IRepository<Trial> trialRepository,
|
||||
IMediator mediator,
|
||||
IInspectionService inspectionService,
|
||||
IDictionaryService dictionaryService,
|
||||
IRepository<DicomStudy> dicomStudyRepository,
|
||||
IRepository<Dictionary> dictionaryrepository,
|
||||
IRepository<Subject> subjectRepository
|
||||
)
|
||||
{
|
||||
|
@ -59,17 +49,14 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
_subjectVisitRepository = subjectVisitRepository;
|
||||
_qcChallengeRepository = qcChallengeRepository;
|
||||
_dicomStudyRepository = dicomStudyRepository;
|
||||
this._dictionaryrepository = dictionaryrepository;
|
||||
this._subjectRepository = subjectRepository;
|
||||
_mediator = mediator;
|
||||
_trialRepository = trialRepository;
|
||||
_inspectionService = inspectionService;
|
||||
this._dictionaryService = dictionaryService;
|
||||
}
|
||||
|
||||
#region QC质疑 以及回复 关闭
|
||||
|
||||
[HttpPost("{trialId:guid}/{subjectVisitId:guid}/{currentQCType:int}")]
|
||||
[HttpGet("{trialId:guid}/{subjectVisitId:guid}/{currentQCType:int}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput> VerifyQCCanAddChallenge(Guid subjectVisitId, [FromRoute] CurrentQC currentQCType)
|
||||
{
|
||||
|
@ -93,7 +80,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
[HttpPost("{trialId:guid}/{trialQCProcess:int}/{currentQCType:int}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
[Authorize(Policy = "ImageQCPolicy")]
|
||||
public async Task<QCChallenge> AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType)
|
||||
public async Task<IResponseOutput> AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType)
|
||||
{
|
||||
await VerifyIsCanQCAsync(null, qaQuestionCommand.SubjectVisitId);
|
||||
|
||||
|
@ -124,18 +111,21 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
qcChallenge = await _qcChallengeRepository.AddAsync(qcChallenge, true);
|
||||
|
||||
return qcChallenge;
|
||||
return ResponseOutput.Ok(qcChallenge.Id);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
return await _repository.UpdateFromDTOAsync<QCChallenge, QCChallengeCommand>(qaQuestionCommand, true);
|
||||
await _repository.UpdateFromDTOAsync<QCChallenge, QCChallengeCommand>(qaQuestionCommand, true);
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -147,7 +137,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
/// <param name="closeEnum"></param>
|
||||
/// <param name="closeReason"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("{trialId:guid}/{qcChallengeId:guid}/{subjectVisitId:guid}/{closeEnum}/{closeReason}")]
|
||||
[HttpPut("{trialId:guid}/{subjectVisitId:guid}/{qcChallengeId:guid}/{closeEnum}/{closeReason}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
[UnitOfWork]
|
||||
//[Authorize(Policy = "ImageQCPolicy")]
|
||||
|
@ -168,8 +158,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#region 之前
|
||||
|
||||
dbQCChallenge.CloseResonEnum = closeEnum;
|
||||
|
@ -194,29 +182,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
return ResponseOutput.Result(success);
|
||||
|
||||
#region 对话实体不会加入
|
||||
|
||||
//dbQCChallenge.DialogList.Add(new QCChallengeDialog()
|
||||
//{
|
||||
// SubjectVisitId = dbQCChallenge.SubjectVisitId,
|
||||
// UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt,
|
||||
// QCChallengeId = dbQCChallenge.Id,
|
||||
// TalkContent = "关闭原因: " + closeReason
|
||||
//});
|
||||
|
||||
|
||||
|
||||
//var success = await _qcChallengeRepository.PartialUpdateAsync(dbQCChallenge, u => new QCChallenge()
|
||||
//{
|
||||
// CloseResonEnum = closeEnum,
|
||||
|
||||
// IsClosed = true,
|
||||
|
||||
// ClosedTime = DateTime.Now,
|
||||
|
||||
//}, true);
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
|
@ -228,7 +193,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
/// 删除QC质疑记录
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpDelete("{qcChallengeId:guid}/{trialId:guid}")]
|
||||
[HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{qcChallengeId:guid}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
[Authorize(Policy = "ImageQCPolicy")]
|
||||
public async Task<IResponseOutput> DeleteQCChallenge(Guid qcChallengeId)
|
||||
|
@ -239,9 +204,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
ResponseOutput.NotOk("this QC Challenge Has been replied ");
|
||||
}
|
||||
|
||||
var qaRecord = await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId);
|
||||
var qaRecord = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException();
|
||||
|
||||
if (qaRecord == null) return Null404NotFound(qaRecord);
|
||||
|
||||
await _qcChallengeRepository.DeleteAsync(qaRecord);
|
||||
|
||||
|
@ -257,7 +221,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
/// <param name="qaDialogCommand"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("{trialId:guid}")]
|
||||
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
[Authorize(Policy = "ImageQCPolicy")]
|
||||
public async Task<IResponseOutput> AddQCChallengeReply(QADialogCommand qaDialogCommand)
|
||||
|
@ -295,7 +258,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
[HttpPost("{trialId:guid}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
[Authorize(Policy = "ImageCheckPolicy")]
|
||||
public async Task<IResponseOutput<CheckChallengeDialog>> AddCheckChallengeReply(CheckChallengeDialogCommand checkDialogCommand)
|
||||
public async Task<IResponseOutput> AddCheckChallengeReply(CheckChallengeDialogCommand checkDialogCommand)
|
||||
{
|
||||
|
||||
|
||||
|
@ -324,14 +287,14 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
var success = await _repository.SaveChangesAsync();
|
||||
|
||||
return ResponseOutput.Result(success, qaReply);
|
||||
return ResponseOutput.Result(success, qaReply.Id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 关闭 一致性核查质疑
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPut("{trialId:guid}/{subjectVisitId:guid}")]
|
||||
[HttpPut("{trialId:guid}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput> CloseCheckChallenge(CloseCheckChallengeDto input)
|
||||
{
|
||||
|
@ -355,7 +318,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
/// 手动设置一致性核查通过
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPut("{trialId:guid}/{signId:guid}/{subjectVisitId:guid}")]
|
||||
[HttpPut("{trialId:guid}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput> SetCheckPass(SetCheckPassDt data)
|
||||
{
|
||||
|
@ -364,9 +327,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
ResponseOutput.NotOk("只允许PM 手动设置一致性核查通过");
|
||||
}
|
||||
|
||||
var sv = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == data.Id);
|
||||
var sv = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == data.SubjectVisitId)).IfNullThrowException();
|
||||
|
||||
if (sv == null) return Null404NotFound(sv);
|
||||
|
||||
if (sv.RequestBackState == RequestBackStateEnum.PM_AgressBack)
|
||||
{
|
||||
|
@ -384,9 +346,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
sv.ManualPassReason = data.ManualPassReason;
|
||||
sv.CheckPassedTime = DateTime.Now;
|
||||
|
||||
await _repository.SaveChangesAsync();
|
||||
await _subjectVisitRepository.SaveChangesAsync();
|
||||
|
||||
//var signSuccess = await _repository.UpdateFromQueryAsync<TrialSign>(t => t.Id == signId, u => new TrialSign() { IsCompleted = true });
|
||||
|
||||
return ResponseOutput.Result(true);
|
||||
|
||||
|
@ -401,16 +362,15 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput> CRCRequstCheckBack(Guid subjectVisitId)
|
||||
{
|
||||
var sv = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
|
||||
var sv = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
|
||||
|
||||
|
||||
if (sv == null) return Null404NotFound(sv);
|
||||
|
||||
if (sv.CheckState == CheckStateEnum.CVPassed)
|
||||
{
|
||||
return ResponseOutput.NotOk("核查通过的数据不允许申请回退");
|
||||
}
|
||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { RequestBackState = RequestBackStateEnum.CRC_RequestBack });
|
||||
|
||||
await _subjectVisitRepository.UpdatePartialFromQueryAsync( subjectVisitId, u => new SubjectVisit() { RequestBackState = RequestBackStateEnum.CRC_RequestBack },true);
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
|
||||
|
@ -420,7 +380,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
/// 一致性核查 回退 对话记录不清除 只允许PM回退
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPut("{trialId:guid}/{signId:guid}/{subjectVisitId:guid}")]
|
||||
[HttpPut("{trialId:guid}/{subjectVisitId:guid}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput> CheckBack(Guid subjectVisitId)
|
||||
{
|
||||
|
@ -429,9 +389,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
return ResponseOutput.NotOk(" 只允许PM 回退!");
|
||||
}
|
||||
|
||||
var sv = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
|
||||
var sv = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
|
||||
|
||||
if (sv == null) return Null404NotFound(sv);
|
||||
|
||||
if (sv.CheckState == CheckStateEnum.CVPassed || sv.CheckState == CheckStateEnum.ToCheck)
|
||||
{
|
||||
|
@ -476,9 +435,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
await _repository.BatchDeleteAsync<TrialQCQuestionAnswer>(t => t.SubjectVisitId == subjectVisitId);
|
||||
|
||||
var success = await _repository.SaveChangesAsync();
|
||||
var success = await _subjectVisitRepository.SaveChangesAsync();
|
||||
|
||||
// var signSuccess = await _repository.UpdateFromQueryAsync<TrialSign>(t => t.Id == signId, u => new TrialSign() { IsCompleted = true });
|
||||
|
||||
return ResponseOutput.Result(success);
|
||||
|
||||
|
@ -874,7 +832,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
/// </summary>
|
||||
/// <param name="subjectVisitId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{subjectVisitId:guid}")]
|
||||
[HttpGet("{trialId:guid}/{subjectVisitId:guid}")]
|
||||
public async Task<IResponseOutput> VerifyCanQCPassedOrFailed(Guid subjectVisitId)
|
||||
{
|
||||
await VerifyIsCanQCAsync(null, subjectVisitId);
|
||||
|
@ -896,7 +854,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
/// <param name="subjectVisitId"></param>
|
||||
/// <param name="trialId"></param>
|
||||
/// <returns></returns>SeriesCount
|
||||
[HttpPost, Route("{trialId:guid}/{subjectVisitId:guid}")]
|
||||
[HttpDelete, Route("{trialId:guid}/{subjectVisitId:guid}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
[UnitOfWork]
|
||||
public async Task<IResponseOutput> DeleteStudyList(Guid[] ids, Guid subjectVisitId, Guid trialId)
|
||||
|
@ -911,13 +869,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
}
|
||||
var waitDeleteStudyList = await _dicomStudyRepository.Where(x => ids.Contains(x.Id)).ToListAsync();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
foreach (var study in waitDeleteStudyList)
|
||||
{
|
||||
|
||||
|
@ -975,7 +926,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
#endregion
|
||||
|
||||
|
||||
public async Task VerifyIsCanQCAsync(SubjectVisit? subjectVisit, Guid? sujectVisitId = null)
|
||||
private async Task VerifyIsCanQCAsync(SubjectVisit? subjectVisit, Guid? sujectVisitId = null)
|
||||
{
|
||||
if (sujectVisitId != null)
|
||||
{
|
||||
|
@ -1016,7 +967,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
/// <param name="subjectVisitId"></param>
|
||||
/// <param name="obtaionOrCancel">true 获取 false是取消领取</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("{trialId:guid}/{subjectVisitId:guid}/{obtaionOrCancel:bool}")]
|
||||
[HttpPut("{trialId:guid}/{subjectVisitId:guid}/{obtaionOrCancel:bool}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput> ObtainOrCancelQCTask(Guid trialId, Guid subjectVisitId, bool obtaionOrCancel)
|
||||
{
|
||||
|
@ -1326,7 +1277,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
/// <param name="auditState"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("{trialId:guid}/{subjectVisitId:guid}/{auditState:int}")]
|
||||
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput> QCPassedOrFailed(Guid trialId, Guid subjectVisitId, [FromRoute] AuditStateEnum auditState)
|
||||
{
|
||||
|
@ -1512,8 +1462,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput> SetVisitUrgent(Guid trialId, Guid subjectVisitId, bool setOrCancel)
|
||||
{
|
||||
var sv = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
|
||||
if (sv == null) return Null404NotFound(sv);
|
||||
var sv = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
|
||||
|
||||
sv.IsUrgent = setOrCancel;
|
||||
var success = await _repository.SaveChangesAsync();
|
||||
|
@ -1545,7 +1494,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
/// <param name="trialId"></param>
|
||||
/// <param name="qcChallengeId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut("{trialId:guid}/{qcChallengeId:guid}")]
|
||||
[HttpPut("{trialId:guid}/{subjectVisitId:guid}/{qcChallengeId:guid}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput> SetNeedReupload(Guid trialId, Guid qcChallengeId)
|
||||
{
|
||||
|
@ -1718,7 +1667,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
|
||||
|
||||
[HttpPut("{trialId:guid}/{qcChallengeId:guid}")]
|
||||
[HttpPut("{trialId:guid}/{subjectVisitId:guid}/{qcChallengeId:guid}")]
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput> CRCRequestReUpload(Guid qcChallengeId)
|
||||
{
|
||||
|
@ -1786,11 +1735,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
}
|
||||
|
||||
dbSubjectVisit.IsEnrollmentConfirm = command.IsEnrollmentConfirm.Value;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (command.SubjectFirstGiveMedicineTime != null)
|
||||
|
|
Loading…
Reference in New Issue