一致性核查
parent
a8df6ef4d5
commit
8b56b17043
|
@ -33,6 +33,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
private readonly IRepository<DicomSeries> _dicomSeriesrepository;
|
private readonly IRepository<DicomSeries> _dicomSeriesrepository;
|
||||||
private readonly IRepository<Subject> _subjectRepository;
|
private readonly IRepository<Subject> _subjectRepository;
|
||||||
private readonly IRepository<QCChallengeDialog> _qCChallengeDialogrepository;
|
private readonly IRepository<QCChallengeDialog> _qCChallengeDialogrepository;
|
||||||
|
private readonly IRepository<CheckChallengeDialog> _checkChallengeDialogrepository;
|
||||||
private readonly IRepository<Trial> _trialRepository;
|
private readonly IRepository<Trial> _trialRepository;
|
||||||
private readonly IMediator _mediator;
|
private readonly IMediator _mediator;
|
||||||
|
|
||||||
|
@ -45,7 +46,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
IRepository<DicomStudy> dicomStudyRepository,
|
IRepository<DicomStudy> dicomStudyRepository,
|
||||||
IRepository<DicomSeries> dicomSeriesrepository,
|
IRepository<DicomSeries> dicomSeriesrepository,
|
||||||
IRepository<Subject> subjectRepository,
|
IRepository<Subject> subjectRepository,
|
||||||
IRepository<QCChallengeDialog> qCChallengeDialogrepository
|
IRepository<QCChallengeDialog> qCChallengeDialogrepository,
|
||||||
|
IRepository<CheckChallengeDialog> checkChallengeDialogrepository
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
_dicomFileStoreHelper = dicomFileStoreHelper;
|
_dicomFileStoreHelper = dicomFileStoreHelper;
|
||||||
|
@ -55,6 +57,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
this._dicomSeriesrepository = dicomSeriesrepository;
|
this._dicomSeriesrepository = dicomSeriesrepository;
|
||||||
this._subjectRepository = subjectRepository;
|
this._subjectRepository = subjectRepository;
|
||||||
this._qCChallengeDialogrepository = qCChallengeDialogrepository;
|
this._qCChallengeDialogrepository = qCChallengeDialogrepository;
|
||||||
|
this._checkChallengeDialogrepository = checkChallengeDialogrepository;
|
||||||
_mediator = mediator;
|
_mediator = mediator;
|
||||||
_trialRepository = trialRepository;
|
_trialRepository = trialRepository;
|
||||||
}
|
}
|
||||||
|
@ -312,7 +315,13 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
}
|
}
|
||||||
sv.CloseTheReason = input.CloseCheckChallenge;
|
sv.CloseTheReason = input.CloseCheckChallenge;
|
||||||
sv.CheckChallengeState = CheckChanllengeTypeEnum.Closed;
|
sv.CheckChallengeState = CheckChanllengeTypeEnum.Closed;
|
||||||
|
await _checkChallengeDialogrepository.AddAsync(new CheckChallengeDialog()
|
||||||
|
{
|
||||||
|
SubjectVisitId = input.subjectVisitId,
|
||||||
|
TalkContent = "原因:" + input.CloseCheckChallenge,
|
||||||
|
UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt,
|
||||||
|
|
||||||
|
});
|
||||||
await _repository.SaveChangesAsync();
|
await _repository.SaveChangesAsync();
|
||||||
|
|
||||||
return ResponseOutput.Ok(sv);
|
return ResponseOutput.Ok(sv);
|
||||||
|
@ -377,11 +386,10 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
var QCChallengeId = await _qcChallengeRepository.Where(x => x.SubjectVisitId == subjectVisitId).Select(x => x.Id).FirstOrDefaultAsync();
|
var QCChallengeId = await _qcChallengeRepository.Where(x => x.SubjectVisitId == subjectVisitId).Select(x => x.Id).FirstOrDefaultAsync();
|
||||||
|
|
||||||
await _qCChallengeDialogrepository.AddAsync(new QCChallengeDialog()
|
await _checkChallengeDialogrepository.AddAsync(new CheckChallengeDialog()
|
||||||
{
|
{
|
||||||
SubjectVisitId = subjectVisitId,
|
SubjectVisitId = subjectVisitId,
|
||||||
UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt,
|
UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt,
|
||||||
QCChallengeId = QCChallengeId,
|
|
||||||
TalkContent = "CRC 请求回退"
|
TalkContent = "CRC 请求回退"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -255,12 +255,18 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
||||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(SubjectVisit)))
|
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(SubjectVisit)))
|
||||||
{
|
{
|
||||||
var entity = item.Entity as SubjectVisit;
|
var entity = item.Entity as SubjectVisit;
|
||||||
switch (GetRequestUrl())
|
string reason = string.Empty;
|
||||||
|
|
||||||
|
switch (GetRequestUrl().ToLower())
|
||||||
{
|
{
|
||||||
case "QCOperation/obtainOrCancelQCTask":
|
case "qcoperation/obtainorcancelqctask":
|
||||||
type = type +"/"+ entity.IsTake.ToString();
|
type = type +"/"+ entity.IsTake.ToString();
|
||||||
break;
|
break;
|
||||||
case "QCOperation/QCPassedOrFailed":
|
// 设置通过一致性核查
|
||||||
|
case "qcoperation/setcheckpass":
|
||||||
|
reason = entity.ManualPassReason;
|
||||||
|
break;
|
||||||
|
case "qcoperation/qcpassedorfailed":
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
type = type + "/" + (40 % (int)entity.AuditState).ToString();
|
type = type + "/" + (40 % (int)entity.AuditState).ToString();
|
||||||
|
@ -282,6 +288,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
||||||
SubjectVisitId = x.Id,
|
SubjectVisitId = x.Id,
|
||||||
SubjectVisitName=x.VisitName,
|
SubjectVisitName=x.VisitName,
|
||||||
BlindName=x.BlindName,
|
BlindName=x.BlindName,
|
||||||
|
Reason= reason,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -348,21 +355,66 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
||||||
//质疑
|
//质疑
|
||||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(QCChallenge)))
|
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(QCChallenge)))
|
||||||
{
|
{
|
||||||
|
var entity = item.Entity as QCChallenge;
|
||||||
type = _userInfo.UserTypeShortName +"/"+ type;
|
type = _userInfo.UserTypeShortName +"/"+ type;
|
||||||
|
var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == entity.SubjectVisitId).FirstOrDefaultAsync();
|
||||||
|
subjectvisit = subjectvisit ?? new SubjectVisit();
|
||||||
|
var content = string.Empty;
|
||||||
|
if (type == "Add")
|
||||||
|
{
|
||||||
|
content = entity.Content;
|
||||||
|
}
|
||||||
await InsertInspection<QCChallenge>(item, type, x => new DataInspection()
|
await InsertInspection<QCChallenge>(item, type, x => new DataInspection()
|
||||||
{
|
{
|
||||||
GeneralId = x.Id,
|
GeneralId = x.Id,
|
||||||
|
TrialId=x.TrialId,
|
||||||
|
SubjectVisitId=x.SubjectVisitId,
|
||||||
|
SiteId= subjectvisit.SiteId,
|
||||||
|
SubjectId= subjectvisit.SubjectId,
|
||||||
|
SubjectVisitName= subjectvisit.VisitName,
|
||||||
|
BlindName= subjectvisit.BlindName,
|
||||||
|
},new {
|
||||||
|
ChallengeCode= "Q" + entity.ChallengeCode.ToString("D5"),
|
||||||
|
AuditState= subjectvisit.AuditState,
|
||||||
|
TalkContent= content,
|
||||||
|
IsOverTime= entity.IsClosed ? entity.ClosedTime > entity.DeadlineTime : DateTime.Now > entity.DeadlineTime,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//质疑
|
// 质疑信息
|
||||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(QCChallengeDialog)))
|
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(QCChallengeDialog)))
|
||||||
{
|
{
|
||||||
|
var reason = string.Empty;
|
||||||
|
var entity = item.Entity as QCChallengeDialog;
|
||||||
|
switch (GetRequestUrl().ToLower())
|
||||||
|
{
|
||||||
|
case "qcoperation/closeqcchallenge":
|
||||||
|
reason = entity.TalkContent.Substring(entity.TalkContent.LastIndexOf(':') + 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
type = _userInfo.UserTypeShortName + "/" + type;
|
type = _userInfo.UserTypeShortName + "/" + type;
|
||||||
|
var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == entity.SubjectVisitId).FirstOrDefaultAsync();
|
||||||
|
var qCChallenge = await _dbContext.QCChallenge.Where(x => x.Id == entity.QCChallengeId).FirstOrDefaultAsync();
|
||||||
|
subjectvisit = subjectvisit ?? new SubjectVisit();
|
||||||
await InsertInspection<QCChallengeDialog>(item, type, x => new DataInspection()
|
await InsertInspection<QCChallengeDialog>(item, type, x => new DataInspection()
|
||||||
{
|
{
|
||||||
GeneralId = x.Id,
|
GeneralId = qCChallenge.Id,
|
||||||
|
TrialId = subjectvisit.TrialId,
|
||||||
|
SubjectVisitId = x.SubjectVisitId,
|
||||||
|
SiteId = subjectvisit.SiteId,
|
||||||
|
SubjectId = subjectvisit.SubjectId,
|
||||||
|
SubjectVisitName = subjectvisit.VisitName,
|
||||||
|
BlindName = subjectvisit.BlindName,
|
||||||
|
Reason= reason,
|
||||||
|
}, new {
|
||||||
|
AuditState= subjectvisit.AuditState,
|
||||||
|
ChallengeCode = "Q" + qCChallenge.ChallengeCode.ToString("D5"),
|
||||||
|
ReuploadEnum= qCChallenge.ReuploadEnum,
|
||||||
|
Content= qCChallenge.Content,
|
||||||
|
DeadlineTime= qCChallenge.DeadlineTime,
|
||||||
|
IsOverTime = qCChallenge.IsClosed ? qCChallenge.ClosedTime > qCChallenge.DeadlineTime : DateTime.Now > qCChallenge.DeadlineTime,
|
||||||
|
IsClosed= qCChallenge.IsClosed
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,9 +422,31 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
||||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(CheckChallengeDialog)))
|
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(CheckChallengeDialog)))
|
||||||
{
|
{
|
||||||
type = _userInfo.UserTypeShortName + "/" + type;
|
type = _userInfo.UserTypeShortName + "/" + type;
|
||||||
|
var entity = item.Entity as CheckChallengeDialog;
|
||||||
|
var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == entity.SubjectVisitId).FirstOrDefaultAsync();
|
||||||
|
subjectvisit = subjectvisit ?? new SubjectVisit();
|
||||||
|
var reason = string.Empty;
|
||||||
|
|
||||||
|
switch (GetRequestUrl().ToLower())
|
||||||
|
{
|
||||||
|
case "qcoperation/closecheckchallenge":
|
||||||
|
reason = entity.TalkContent.Substring(entity.TalkContent.LastIndexOf(':') + 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
await InsertInspection<CheckChallengeDialog>(item, type, x => new DataInspection()
|
await InsertInspection<CheckChallengeDialog>(item, type, x => new DataInspection()
|
||||||
{
|
{
|
||||||
GeneralId = x.Id,
|
GeneralId = entity.SubjectVisitId,
|
||||||
|
TrialId = subjectvisit.TrialId,
|
||||||
|
SubjectVisitId = x.SubjectVisitId,
|
||||||
|
SiteId = subjectvisit.SiteId,
|
||||||
|
SubjectId = subjectvisit.SubjectId,
|
||||||
|
SubjectVisitName = subjectvisit.VisitName,
|
||||||
|
BlindName = subjectvisit.BlindName,
|
||||||
|
Reason= reason,
|
||||||
|
},new {
|
||||||
|
CheckState= subjectvisit.CheckState,
|
||||||
|
RequestBackState = subjectvisit.RequestBackState,
|
||||||
|
CheckChallengeState= subjectvisit.CheckChallengeState,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue