修改CRC 提交和末次访视评估逻辑

This commit is contained in:
2023-02-20 11:55:56 +08:00
parent a52adf9723
commit 316aa7d94c
2 changed files with 54 additions and 46 deletions
@@ -14,6 +14,9 @@ using Nito.AsyncEx;
using System.ComponentModel.DataAnnotations;
using IRaCIS.Core.Application.Auth;
using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Application.Service;
namespace IRaCIS.Core.Application.Image.QA
{
@@ -31,6 +34,9 @@ namespace IRaCIS.Core.Application.Image.QA
private readonly IRepository<CheckChallengeDialog> _checkChallengeDialogrepository;
private readonly IRepository<Trial> _trialRepository;
private readonly IVisitTaskHelpeService _IVisitTaskHelpeService;
private readonly AsyncLock _mutex = new AsyncLock();
public QCOperationService(IRepository<SubjectVisit> subjectVisitRepository,
@@ -41,7 +47,8 @@ namespace IRaCIS.Core.Application.Image.QA
IRepository<Subject> subjectRepository,
IRepository<ReadingClinicalData> readingClinicalDataRepository,
IRepository<QCChallengeDialog> qCChallengeDialogrepository,
IRepository<CheckChallengeDialog> checkChallengeDialogrepository
IRepository<CheckChallengeDialog> checkChallengeDialogrepository,
IVisitTaskHelpeService visitTaskHelpeService
)
{
_subjectVisitRepository = subjectVisitRepository;
@@ -53,6 +60,8 @@ namespace IRaCIS.Core.Application.Image.QA
this._qCChallengeDialogrepository = qCChallengeDialogrepository;
this._checkChallengeDialogrepository = checkChallengeDialogrepository;
_trialRepository = trialRepository;
_IVisitTaskHelpeService= visitTaskHelpeService;
}
#region QC质疑
@@ -1284,8 +1293,8 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.AuditState = AuditStateEnum.ToAudit;
}
//非基线设置为PD的话 根据配置自动生成阅片期
if (!dbSubjectVisit.IsBaseLine && dbSubjectVisit.PDState == PDStateEnum.PDProgress)
//非基线设置为PD的话 或者设置为末次访视 根据配置自动生成阅片期
if (!dbSubjectVisit.IsBaseLine && dbSubjectVisit.PDState == PDStateEnum.PDProgress && dbSubjectVisit.IsFinalVisit)
{
//该标准需要添加阅片期
foreach (var trialReadingCriterionId in trialReadingCriterionIdList)
@@ -1294,7 +1303,7 @@ namespace IRaCIS.Core.Application.Image.QA
if (!await _repository.Where<ReadModule>(t => t.SubjectVisitId == dbSubjectVisit.Id && t.ReadingSetType == ReadingSetType.ImageReading && t.TrialReadingCriterionId == trialReadingCriterionId).AnyAsync())
{
await _repository.AddAsync(new ReadModule()
var newReadModule = await _repository.AddAsync(new ReadModule()
{
TrialReadingCriterionId = trialReadingCriterionId,
ReadingSetType = ReadingSetType.ImageReading,
@@ -1895,8 +1904,8 @@ namespace IRaCIS.Core.Application.Image.QA
{
session.CreateDirectory(targetPath);
}
foreach (var studyFolder in studyFolders)
{
var targetFolder = Path.Combine(targetPath, studyFolder.Name);