修改失访分配问题
parent
2126cb0e3e
commit
63ba5e4823
|
@ -344,7 +344,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
{
|
||||
//之前有回退到影像上传的访视 那么当前访视一致性核查通过的时候,当前访视生成但是不分配出去
|
||||
|
||||
var beforeBackVisitTask = await _visitTaskRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionConfig.TrialReadingCriterionId && t.SubjectId == subjectVisit.SubjectId && t.VisitTaskNum < subjectVisit.VisitNum && t.ReadingCategory == ReadingCategory.Visit && t.SourceSubjectVisit.CheckState != CheckStateEnum.CVPassed).OrderBy(t => t.VisitTaskNum).FirstOrDefaultAsync();
|
||||
var beforeBackVisitTask = await _visitTaskRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionConfig.TrialReadingCriterionId && t.SubjectId == subjectVisit.SubjectId && t.VisitTaskNum < subjectVisit.VisitNum && t.ReadingCategory == ReadingCategory.Visit && t.SourceSubjectVisit.CheckState != CheckStateEnum.CVPassed && t.SourceSubjectVisit.IsLostVisit==false).OrderBy(t => t.VisitTaskNum).FirstOrDefaultAsync();
|
||||
|
||||
//之前有回退的,那么当前访视任务生成但是不分配
|
||||
if (beforeBackVisitTask != null)
|
||||
|
|
|
@ -137,7 +137,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
if (inOrder)
|
||||
{
|
||||
|
||||
if (await _subjectVisitRepository.AnyAsync(t => t.SubjectId == subjectId && t.CheckState != CheckStateEnum.CVPassed))
|
||||
if (await _subjectVisitRepository.AnyAsync(t => t.SubjectId == subjectId && t.CheckState != CheckStateEnum.CVPassed && t.IsLostVisit==false))
|
||||
{
|
||||
var notCheckPassedMinVisitNum = await _subjectVisitRepository.Where(t => t.SubjectId == subjectId && t.CheckState != CheckStateEnum.CVPassed).OrderBy(t => t.VisitNum).Select(t => t.VisitNum).FirstOrDefaultAsync();
|
||||
|
||||
|
|
|
@ -756,54 +756,68 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
var id = study.Id;
|
||||
|
||||
await _dicomStudyRepository.DeleteAsync(study, true);
|
||||
await _dicomStudyRepository.DeleteAsync(study);
|
||||
|
||||
|
||||
//var DicomSeriess = await _repository.GetQueryable<DicomSeries>().Where(t => t.StudyId == id).Select(x => new
|
||||
//{
|
||||
// x.StudyId,
|
||||
// x.SubjectId,
|
||||
// x.SiteId,
|
||||
// x.TrialId,
|
||||
// x.Id,
|
||||
// x.SubjectVisitId,
|
||||
// x.SeriesTime,
|
||||
// x.IsReading,
|
||||
// x.InstanceCount,
|
||||
// x.SeriesNumber,
|
||||
// StudyCode = x.DicomStudy.StudyCode,
|
||||
// Modalities = x.DicomStudy.Modalities,
|
||||
|
||||
//}).ToListAsync();
|
||||
|
||||
var succeess2 = await _repository.BatchDeleteAsync<DicomInstance>(t => t.StudyId == id);
|
||||
var success3 = await _dicomSeriesrepository.BatchDeleteNoTrackingAsync(t => t.StudyId == id);
|
||||
|
||||
var DicomSeriess = await _repository.GetQueryable<DicomSeries>().Where(t => t.StudyId == id).Select(x => new
|
||||
{
|
||||
x.StudyId,
|
||||
x.SubjectId,
|
||||
x.SiteId,
|
||||
x.TrialId,
|
||||
x.Id,
|
||||
x.SubjectVisitId,
|
||||
x.SeriesTime,
|
||||
x.IsReading,
|
||||
x.InstanceCount,
|
||||
x.SeriesNumber,
|
||||
StudyCode = x.DicomStudy.StudyCode,
|
||||
Modalities = x.DicomStudy.Modalities,
|
||||
|
||||
}).ToListAsync();
|
||||
|
||||
|
||||
|
||||
var success3 = await _dicomSeriesrepository.DeleteFromQueryAsync(t => t.StudyId == id, true);
|
||||
//var success3 = await _dicomSeriesrepository.DeleteFromQueryAsync(t => t.StudyId == id, true);
|
||||
var success4 = await _repository.BatchDeleteAsync<StudyMonitor>(t => t.StudyId == id);
|
||||
|
||||
//删除 物理文件
|
||||
|
||||
var instanceIdList = await _repository.Where<DicomInstance>(t => t.StudyId == id)
|
||||
.Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync();
|
||||
var instancePathList = await _repository.Where<DicomInstance>(t => t.StudyId == id)
|
||||
.Select(t => t.Path ).ToListAsync();
|
||||
|
||||
instanceIdList.ForEach(t =>
|
||||
instancePathList.ForEach(path =>
|
||||
{
|
||||
var dicomStudy = new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId };
|
||||
var (physicalPath, relativePath) =
|
||||
FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId);
|
||||
|
||||
var physicalPath = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, path);
|
||||
|
||||
if (System.IO.File.Exists(physicalPath))
|
||||
{
|
||||
File.Delete(physicalPath);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//var instanceIdList = await _repository.Where<DicomInstance>(t => t.StudyId == id)
|
||||
// .Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync();
|
||||
|
||||
//instanceIdList.ForEach(t =>
|
||||
//{
|
||||
// var dicomStudy = new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId };
|
||||
// var (physicalPath, relativePath) =
|
||||
// FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId);
|
||||
|
||||
// if (System.IO.File.Exists(physicalPath))
|
||||
// {
|
||||
// File.Delete(physicalPath);
|
||||
// }
|
||||
|
||||
//});
|
||||
}
|
||||
|
||||
await _subjectVisitRepository.SaveChangesAsync();
|
||||
|
||||
|
||||
var subvisit = await _repository.GetQueryable<SubjectVisit>().FirstOrDefaultAsync(x => x.Id == subjectVisitId);
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue