|
|
|
@@ -116,7 +116,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
await _repository.UpdateFromDTOAsync<QCChallenge, QCChallengeCommand>(qaQuestionCommand, true);
|
|
|
|
|
await _qcChallengeRepository.UpdateFromDTOAsync(qaQuestionCommand, true);
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Ok();
|
|
|
|
|
|
|
|
|
@@ -191,7 +191,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
public async Task<IResponseOutput> DeleteQCChallenge(Guid qcChallengeId)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (await _repository.AnyAsync<QCChallengeDialog>(t => t.QCChallengeId == qcChallengeId))
|
|
|
|
|
if (await _qCChallengeDialogrepository.AnyAsync(t => t.QCChallengeId == qcChallengeId))
|
|
|
|
|
{
|
|
|
|
|
//---当前QC质疑已经回复。
|
|
|
|
|
ResponseOutput.NotOk(_localizer["QCOperation_QuestionReplied"]);
|
|
|
|
@@ -203,7 +203,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
await _qcChallengeRepository.DeleteAsync(qaRecord);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var success1 = await _repository.SaveChangesAsync();
|
|
|
|
|
var success1 = await _qcChallengeRepository.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Result(success1 /*|| success2 || success3*/);
|
|
|
|
|
}
|
|
|
|
@@ -224,7 +224,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
|
|
|
|
|
qaReply.UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt;
|
|
|
|
|
|
|
|
|
|
var dbQCChallenge = (await _repository.FirstOrDefaultAsync<QCChallenge>(t => t.Id == qaDialogCommand.QCChallengeId)).IfNullThrowException();
|
|
|
|
|
var dbQCChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qaDialogCommand.QCChallengeId)).IfNullThrowException();
|
|
|
|
|
|
|
|
|
|
dbQCChallenge.LatestMsgTime = DateTime.Now;
|
|
|
|
|
|
|
|
|
@@ -232,7 +232,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
dbQCChallenge.LatestReplyUserId = _userInfo.Id;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var success = await _repository.SaveChangesAsync();
|
|
|
|
|
var success = await _qCChallengeDialogrepository.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Result(success, qaReply);
|
|
|
|
@@ -279,7 +279,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
throw new BusinessValidationFailedException(_localizer["QCOperation_NoPermissionReply"]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var success = await _repository.SaveChangesAsync();
|
|
|
|
|
var success = await _subjectVisitRepository.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Result(success, qaReply.Id);
|
|
|
|
|
}
|
|
|
|
@@ -314,7 +314,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt,
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
await _repository.SaveChangesAsync();
|
|
|
|
|
await _subjectVisitRepository.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Ok(sv);
|
|
|
|
|
}
|
|
|
|
@@ -575,7 +575,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Ok(await _repository.SaveChangesAsync());
|
|
|
|
|
return ResponseOutput.Ok(await _trialQCQuestionAnswerRepository.SaveChangesAsync());
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
@@ -583,9 +583,9 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
|
|
|
|
|
addlist.ForEach(t => { t.TrialId = trialId; t.SubjectVisitId = subjectVisitId; t.CurrentQCEnum = currentQCType; t.QCProcessEnum = trialQCProcess; });
|
|
|
|
|
|
|
|
|
|
await _repository.AddRangeAsync(addlist);
|
|
|
|
|
await _trialQCQuestionAnswerRepository.AddRangeAsync(addlist);
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Result(await _repository.SaveChangesAsync());
|
|
|
|
|
return ResponseOutput.Result(await _trialQCQuestionAnswerRepository.SaveChangesAsync());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -661,7 +661,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
study.IsDeleted = study.SeriesCount == 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Ok(await _repository.SaveChangesAsync());
|
|
|
|
|
return ResponseOutput.Ok(await _dicomStudyRepository.SaveChangesAsync());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@@ -693,7 +693,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var studyId = updateModalityCommand.Id;
|
|
|
|
|
var study = (await _repository.FirstOrDefaultAsync<DicomStudy>(t => t.Id == studyId)).IfNullThrowException();
|
|
|
|
|
var study = (await _dicomStudyRepository.FirstOrDefaultAsync(t => t.Id == studyId)).IfNullThrowException();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
study.BodyPartForEdit = updateModalityCommand.BodyPart;
|
|
|
|
@@ -706,7 +706,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var seriesId = updateModalityCommand.Id;
|
|
|
|
|
var series = (await _repository.FirstOrDefaultAsync<DicomSeries>(t => t.Id == seriesId)).IfNullThrowException();
|
|
|
|
|
var series = (await _dicomSeriesRepository.FirstOrDefaultAsync(t => t.Id == seriesId)).IfNullThrowException();
|
|
|
|
|
series.BodyPartForEdit = updateModalityCommand.BodyPart;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
@@ -715,7 +715,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await _repository.SaveChangesAsync();
|
|
|
|
|
await _subjectVisitRepository.SaveChangesAsync();
|
|
|
|
|
return ResponseOutput.Ok();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -730,7 +730,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
{
|
|
|
|
|
await VerifyIsCanQCAsync(null, subjectVisitId);
|
|
|
|
|
|
|
|
|
|
if (await _repository.AnyAsync<QCChallenge>(t => t.SubjectVisitId == subjectVisitId && t.IsClosed == false))
|
|
|
|
|
if (await _qcChallengeRepository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.IsClosed == false))
|
|
|
|
|
{
|
|
|
|
|
//---当前访视有质疑未关闭,不允许该操作
|
|
|
|
|
return ResponseOutput.NotOk(_localizer["QCOperation_UnresolvedQCQuery"]);
|
|
|
|
@@ -804,11 +804,11 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
|
|
|
|
|
var subjectId=waitDeleteStudyList.Select(t=>t.SubjectId).FirstOrDefault();
|
|
|
|
|
|
|
|
|
|
var patientList = _repository.Where<SCPPatient>(t => t.SubjectId == subjectId).Select(t => t.Id).ToList();
|
|
|
|
|
var patientList = _scpPatientRepository.Where(t => t.SubjectId == subjectId).Select(t => t.Id).ToList();
|
|
|
|
|
|
|
|
|
|
foreach (var patientId in patientList)
|
|
|
|
|
{
|
|
|
|
|
if (_repository.Where<SCPPatient>(t=>t.Id== patientId).Any(t => t.SCPStudyList.Count() == t.SCPStudyList.Where(t => t.SubjectVisitId == null).Count()))
|
|
|
|
|
if (_scpPatientRepository.Where(t=>t.Id== patientId).Any(t => t.SCPStudyList.Count() == t.SCPStudyList.Where(t => t.SubjectVisitId == null).Count()))
|
|
|
|
|
{
|
|
|
|
|
await _scpPatientRepository.BatchUpdateNoTrackingAsync(t => t.Id == patientId, u => new SCPPatient() { SubjectId = null });
|
|
|
|
|
}
|
|
|
|
@@ -1295,7 +1295,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取确认的临床数据配置
|
|
|
|
|
var clinicalDataConfirmList = _repository.Where<ClinicalDataTrialSet>(t => t.TrialId == trialId && t.IsConfirm).ToList();
|
|
|
|
|
var clinicalDataConfirmList = _clinicalDataTrialSetRepository.Where(t => t.TrialId == trialId && t.IsConfirm).ToList();
|
|
|
|
|
|
|
|
|
|
// 别人未提交的
|
|
|
|
|
foreach (var dbSubjectVisit in dbSubjectVisitList)
|
|
|
|
@@ -1496,7 +1496,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var success = await _repository.SaveChangesAsync();
|
|
|
|
|
var success = await _subjectVisitRepository.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Ok(success);
|
|
|
|
|
|
|
|
|
@@ -1528,7 +1528,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
if (auditState == AuditStateEnum.QCPassed)
|
|
|
|
|
{
|
|
|
|
|
//判断质疑是否都关闭了
|
|
|
|
|
if (await _repository.AnyAsync<QCChallenge>(t => t.SubjectVisitId == subjectVisitId && t.IsClosed == false))
|
|
|
|
|
if (await _qcChallengeRepository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.IsClosed == false))
|
|
|
|
|
{
|
|
|
|
|
//---当前访视有影像质控质疑未关闭,不能进行此操作。
|
|
|
|
|
return ResponseOutput.NotOk(_localizer["QCOperation_QCNotClosed"]);
|
|
|
|
@@ -1727,7 +1727,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
dbSubjectVisit.CurrentActionUserId = null;
|
|
|
|
|
dbSubjectVisit.CurrentActionUserExpireTime = null;
|
|
|
|
|
|
|
|
|
|
await _repository.SaveChangesAsync();
|
|
|
|
|
await _subjectVisitRepository.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Result(true);
|
|
|
|
@@ -1753,7 +1753,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
var sv = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
|
|
|
|
|
|
|
|
|
|
sv.IsUrgent = setOrCancel;
|
|
|
|
|
var success = await _repository.SaveChangesAsync();
|
|
|
|
|
var success = await _subjectVisitRepository.SaveChangesAsync();
|
|
|
|
|
return ResponseOutput.Ok();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1837,7 +1837,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
//双审 并且是2QC 那么需要回退到1QC 讲1QC数据清除
|
|
|
|
|
if (trialConfig.QCProcessEnum == TrialQCProcess.DoubleAudit && await _repository.AnyAsync<QCChallenge>(t => t.Id == qcChallengeId && t.SubjectVisit.AuditState == AuditStateEnum.InSecondaryQC))
|
|
|
|
|
if (trialConfig.QCProcessEnum == TrialQCProcess.DoubleAudit && await _qcChallengeRepository.AnyAsync(t => t.Id == qcChallengeId && t.SubjectVisit.AuditState == AuditStateEnum.InSecondaryQC))
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1872,7 +1872,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var success = await _repository.SaveChangesAsync();
|
|
|
|
|
var success = await _qcChallengeRepository.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Result(success);
|
|
|
|
|