修改失访分配问题
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)
|
if (beforeBackVisitTask != null)
|
||||||
|
|
|
@ -137,7 +137,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
if (inOrder)
|
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();
|
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;
|
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 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
|
//var success3 = await _dicomSeriesrepository.DeleteFromQueryAsync(t => t.StudyId == id, true);
|
||||||
{
|
|
||||||
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 success4 = await _repository.BatchDeleteAsync<StudyMonitor>(t => t.StudyId == id);
|
var success4 = await _repository.BatchDeleteAsync<StudyMonitor>(t => t.StudyId == id);
|
||||||
|
|
||||||
//删除 物理文件
|
//删除 物理文件
|
||||||
|
|
||||||
var instanceIdList = await _repository.Where<DicomInstance>(t => t.StudyId == id)
|
var instancePathList = await _repository.Where<DicomInstance>(t => t.StudyId == id)
|
||||||
.Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync();
|
.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) =
|
var physicalPath = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, path);
|
||||||
FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId);
|
|
||||||
|
|
||||||
if (System.IO.File.Exists(physicalPath))
|
if (System.IO.File.Exists(physicalPath))
|
||||||
{
|
{
|
||||||
File.Delete(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();
|
return ResponseOutput.Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue