This commit is contained in:
he
2022-04-21 17:08:19 +08:00
parent da620303af
commit 943c44892a
9 changed files with 116 additions and 27 deletions
@@ -1,5 +1,6 @@
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Contracts.DTO;
using IRaCIS.Core.Application.Service.Inspection.DTO;
using IRaCIS.Core.Domain.Share;
using MediatR;
using Microsoft.AspNetCore.Hosting;
@@ -13,7 +14,7 @@ namespace IRaCIS.Core.Application.Image.QA
Task<IResponseOutput> CheckBack(Guid subjectVisitId);
Task<IResponseOutput> SetNeedReupload(Guid trialId, Guid qcChallengeId);
Task<IResponseOutput> QCPassedOrFailed(Guid trialId, Guid subjectVisitId, [FromRoute] AuditStateEnum auditState);
Task<IResponseOutput> SetCheckPass(Guid subjectVisitId);
Task<IResponseOutput> SetCheckPass(SetCheckPassDt data);
@@ -22,6 +22,7 @@ using Newtonsoft.Json;
using Magicodes.ExporterAndImporter.Csv;
using IRaCIS.Core.Application.Service.Inspection.Interface;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Application.Service.Inspection.DTO;
namespace IRaCIS.Core.Application.Image.QA
{
@@ -414,14 +415,14 @@ namespace IRaCIS.Core.Application.Image.QA
/// <returns></returns>
[HttpPut("{trialId:guid}/{signId:guid}/{subjectVisitId:guid}")]
[TypeFilter(typeof(TrialResourceFilter))]
public async Task<IResponseOutput> SetCheckPass(Guid subjectVisitId)
public async Task<IResponseOutput> SetCheckPass(SetCheckPassDt data)
{
if (_userInfo.UserTypeEnumInt != (int)UserTypeEnum.ProjectManager)
{
ResponseOutput.NotOk("只允许PM 手动设置一致性核查通过");
}
var sv = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
var sv = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == data.Id);
if (sv == null) return Null404NotFound(sv);
@@ -438,7 +439,7 @@ namespace IRaCIS.Core.Application.Image.QA
sv.CheckState = CheckStateEnum.CVPassed;
sv.ForwardState = ForwardStateEnum.ToForward;
sv.ManualPassReason = data.ManualPassReason;
sv.CheckPassedTime = DateTime.Now;
await _repository.SaveChangesAsync();
@@ -1671,6 +1672,7 @@ namespace IRaCIS.Core.Application.Image.QA
var instanceIdList = await _repository.Where<DicomInstance>(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId)
.Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync();
// 删除序列
List<DataInspection> datas = new List<DataInspection>();
var DicomSeriesdata = await _repository.GetQueryable<DicomSeries>().Where(x => x.SubjectVisitId == subjectVisitId).Select(x => new {
StudyCode = x.DicomStudy.StudyCode,
@@ -1714,6 +1716,8 @@ namespace IRaCIS.Core.Application.Image.QA
});
});
await _inspectionService.AddListInspectionRecordAsync(datas);
instanceIdList.ForEach(t =>
{