Uat_Study
parent
b65c82a20a
commit
2e94a7d9e4
|
@ -189,7 +189,7 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public string StudyCode { get; set; } = String.Empty;
|
public string StudyCode { get; set; } = String.Empty;
|
||||||
public string Modalities { get; set; } = String.Empty;
|
public string Modalities { get; set; } = String.Empty;
|
||||||
|
|
||||||
public bool IsLastTaskStudy { get; set; } = false;
|
public bool IsCriticalSequence { get; set; } = false;
|
||||||
|
|
||||||
public int SeriesCount { get; set; }
|
public int SeriesCount { get; set; }
|
||||||
public int InstanceCount { get; set; }
|
public int InstanceCount { get; set; }
|
||||||
|
|
|
@ -248,45 +248,35 @@ namespace IRaCIS.Core.Application.Services
|
||||||
|
|
||||||
|
|
||||||
var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
|
var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
|
||||||
var lasttask = await _visitTaskRepository.Where(x =>
|
|
||||||
x.TrialId == taskInfo.TrialId &&
|
if(taskInfo.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
x.SubjectId == taskInfo.SubjectId &&
|
|
||||||
x.VisitTaskNum < taskInfo.VisitTaskNum &&
|
|
||||||
x.ArmEnum == taskInfo.ArmEnum &&
|
|
||||||
x.ReadingCategory == taskInfo.ReadingCategory &&
|
|
||||||
x.Id != visitTaskId &&
|
|
||||||
x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId &&
|
|
||||||
x.ReadingTaskState == ReadingTaskState.HaveSigned &&
|
|
||||||
x.TaskState == TaskState.Effect &&
|
|
||||||
x.IsAnalysisCreate == taskInfo.IsAnalysisCreate).OrderByDescending(x => x.VisitTaskNum).FirstOrDefaultAsync();
|
|
||||||
if(lasttask != null)
|
|
||||||
{
|
{
|
||||||
var lastRowinfo = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == lasttask.Id && x.StudyId != null).ToListAsync();
|
|
||||||
var lastStudyIds = lastRowinfo.Select(x => x.StudyId).ToList();
|
var thisStudyIds = thisRowinfo.Select(x => x.StudyId).ToList();
|
||||||
var lastSeriesIdIds = lastRowinfo.Where(x=>x.SeriesId!=null).Select(x => x.SeriesId).ToList();
|
var thisSeriesIdIds = thisRowinfo.Where(x=>x.SeriesId!=null).Select(x => x.SeriesId).ToList();
|
||||||
if (lastRowinfo.Count>0)
|
if (thisRowinfo.Count>0)
|
||||||
{
|
{
|
||||||
var lastVisitTaskStudy= await _repository.Where<DicomStudy>(t => lastStudyIds.Contains(t.Id)).Select(k => new VisitStudyDTO()
|
var lastVisitTaskStudy= await _repository.Where<DicomStudy>(t => thisStudyIds.Contains(t.Id)).Select(k => new VisitStudyDTO()
|
||||||
{
|
{
|
||||||
InstanceCount = k.InstanceCount,
|
InstanceCount = k.InstanceCount,
|
||||||
Modalities = k.Modalities,
|
Modalities = k.Modalities,
|
||||||
SeriesCount = k.SeriesCount,
|
SeriesCount = k.SeriesCount,
|
||||||
StudyCode = k.StudyCode,
|
StudyCode = k.StudyCode,
|
||||||
StudyId = k.Id,
|
StudyId = k.Id,
|
||||||
IsLastTaskStudy=true,
|
IsCriticalSequence=true,
|
||||||
|
|
||||||
}).FirstOrDefaultAsync();
|
}).FirstOrDefaultAsync();
|
||||||
|
|
||||||
if (lastVisitTaskStudy != null)
|
if (lastVisitTaskStudy != null)
|
||||||
{
|
{
|
||||||
lastVisitTaskStudy.SeriesList = await _repository.Where<DicomSeries>(s => lastSeriesIdIds.Contains(s.Id)).OrderBy(s => s.SeriesNumber).
|
lastVisitTaskStudy.SeriesList = await _repository.Where<DicomSeries>(s => thisSeriesIdIds.Contains(s.Id)).OrderBy(s => s.SeriesNumber).
|
||||||
ThenBy(s => s.SeriesTime)
|
ThenBy(s => s.SeriesTime)
|
||||||
.ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
.ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
lastVisitTaskStudy.SeriesCount = lastVisitTaskStudy.SeriesList.Count();
|
lastVisitTaskStudy.SeriesCount = lastVisitTaskStudy.SeriesList.Count();
|
||||||
|
|
||||||
lastVisitTaskStudy.SeriesList.ForEach(x =>
|
lastVisitTaskStudy.SeriesList.ForEach(x =>
|
||||||
{
|
{
|
||||||
x.InstanceList = lastRowinfo.Where(y => y.SeriesId == x.Id&&y.InstanceId!=null).Select(y => y.InstanceId.Value).ToList();
|
x.InstanceList = thisRowinfo.Where(y => y.SeriesId == x.Id&&y.InstanceId!=null).Select(y => y.InstanceId.Value).ToList();
|
||||||
x.InstanceCount = x.InstanceList.Count();
|
x.InstanceCount = x.InstanceList.Count();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue