Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8
commit
ace39a7f94
|
@ -5526,6 +5526,21 @@
|
||||||
是否是第一次转化的任务
|
是否是第一次转化的任务
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetRelatedVisitTaskOutDto.PTSeriesId">
|
||||||
|
<summary>
|
||||||
|
融合的PTSeriesId
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetRelatedVisitTaskOutDto.CTSeriesId">
|
||||||
|
<summary>
|
||||||
|
融合的CTSeriesId
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetRelatedVisitTaskOutDto.OtherStudyId">
|
||||||
|
<summary>
|
||||||
|
StudyId
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetGlobalReadingInfoInDto.UsingOriginalData">
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetGlobalReadingInfoInDto.UsingOriginalData">
|
||||||
<summary>
|
<summary>
|
||||||
当新答案为空的时候 是否是有原数据
|
当新答案为空的时候 是否是有原数据
|
||||||
|
|
|
@ -230,7 +230,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
.WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid)
|
.WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid)
|
||||||
.WhereIf(inQuery.IsGetBeRead,x=>!x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned)
|
.WhereIf(inQuery.IsGetBeRead,x=>!x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned)
|
||||||
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
|
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
|
||||||
.OrderBy(x => x.AuditState).ThenBy(x=>x.VisitTask.SubjectId).ThenBy(x=>x.VisitTask.ArmEnum).ThenBy(x=>x.VisitTask.VisitTaskNum)
|
.OrderBy(x => x.AuditState!= MedicalReviewAuditState.WaitAudit&& x.AuditState != MedicalReviewAuditState.Auditing).ThenBy(x=>x.VisitTask.SubjectId).ThenBy(x=>x.VisitTask.ArmEnum).ThenBy(x=>x.VisitTask.VisitTaskNum)
|
||||||
.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider);
|
.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,9 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public class GetNextQCInfoInDto
|
public class GetNextQCInfoInDto
|
||||||
{
|
{
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
}
|
|
||||||
|
public Guid? VisitId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class QCVisitSearchDTO : PageInput
|
public class QCVisitSearchDTO : PageInput
|
||||||
{
|
{
|
||||||
|
@ -50,7 +52,9 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public bool? IsUrgent { get; set; }
|
public bool? IsUrgent { get; set; }
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
public Guid? SiteId { get; set; }
|
public Guid? SiteId { get; set; }
|
||||||
public Guid? SubjectId { get; set; }
|
|
||||||
|
public Guid? VisitId { get; set; }
|
||||||
|
public Guid? SubjectId { get; set; }
|
||||||
|
|
||||||
public string SubjectInfo { get; set; } = String.Empty;
|
public string SubjectInfo { get; set; } = String.Empty;
|
||||||
|
|
||||||
|
|
|
@ -248,26 +248,26 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
/// <param name="inDto"></param>
|
/// <param name="inDto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<QCVisitViewModel?> GetNextQCInfo(GetNextQCInfoInDto inDto)
|
public async Task<QCVisitViewModel?> GetNextQCInfo(GetNextQCInfoInDto inDto)
|
||||||
{
|
{
|
||||||
var result= await GetQCVisitList(new QCVisitSearchDTO()
|
var result = await GetQCVisitList(new QCVisitSearchDTO()
|
||||||
{
|
{
|
||||||
|
TrialId = inDto.TrialId,
|
||||||
|
CurrentActionUserId = _userInfo.Id,
|
||||||
|
VisitId = inDto.VisitId,
|
||||||
|
PageIndex = 1,
|
||||||
|
PageSize = 1,
|
||||||
|
});
|
||||||
|
|
||||||
TrialId = inDto.TrialId,
|
return result.Item1.CurrentPageData.Count > 0 ? result.Item1.CurrentPageData[0] : null;
|
||||||
CurrentActionUserId=_userInfo.Id,
|
}
|
||||||
PageIndex=1,
|
|
||||||
PageSize=1,
|
|
||||||
});
|
|
||||||
|
|
||||||
return result.Item1.CurrentPageData.Count > 0 ? result.Item1.CurrentPageData[0] : null;
|
/// <summary>
|
||||||
}
|
/// QC 访视列表
|
||||||
|
/// </summary>
|
||||||
/// <summary>
|
/// <param name="visitSearchDTO"></param>
|
||||||
/// QC 访视列表
|
/// <returns></returns>
|
||||||
/// </summary>
|
[HttpPost]
|
||||||
/// <param name="visitSearchDTO"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost]
|
|
||||||
public async Task<(PageOutput<QCVisitViewModel>, TrialSubjectAndSVConfig)> GetQCVisitList(QCVisitSearchDTO visitSearchDTO)
|
public async Task<(PageOutput<QCVisitViewModel>, TrialSubjectAndSVConfig)> GetQCVisitList(QCVisitSearchDTO visitSearchDTO)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -431,7 +431,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
var svExpression = QCCommon.GetSubjectVisitFilter(visitSearchDTO.VisitPlanArray);
|
var svExpression = QCCommon.GetSubjectVisitFilter(visitSearchDTO.VisitPlanArray);
|
||||||
var query = _subjectVisitRepository.Where(x => x.TrialId == visitSearchDTO.TrialId)
|
var query = _subjectVisitRepository.Where(x => x.TrialId == visitSearchDTO.TrialId)
|
||||||
.WhereIf(visitSearchDTO.CurrentActionUserId != null, t => t.CurrentActionUserId == visitSearchDTO.CurrentActionUserId)
|
.WhereIf(visitSearchDTO.VisitId != null, t => t.Id == visitSearchDTO.VisitId)
|
||||||
|
.WhereIf(visitSearchDTO.CurrentActionUserId != null, t => t.CurrentActionUserId == visitSearchDTO.CurrentActionUserId)
|
||||||
.WhereIf(visitSearchDTO.ChallengeState != null, t => t.ChallengeState == visitSearchDTO.ChallengeState)
|
.WhereIf(visitSearchDTO.ChallengeState != null, t => t.ChallengeState == visitSearchDTO.ChallengeState)
|
||||||
.WhereIf(visitSearchDTO.SiteId != null, t => t.SiteId == visitSearchDTO.SiteId)
|
.WhereIf(visitSearchDTO.SiteId != null, t => t.SiteId == visitSearchDTO.SiteId)
|
||||||
.WhereIf(visitSearchDTO.SubjectId != null, t => t.Subject.Id == visitSearchDTO.SubjectId)
|
.WhereIf(visitSearchDTO.SubjectId != null, t => t.Subject.Id == visitSearchDTO.SubjectId)
|
||||||
|
|
|
@ -928,9 +928,15 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
return new GetNextIQCQualityOutDto() { };
|
return new GetNextIQCQualityOutDto() { };
|
||||||
break;
|
break;
|
||||||
case TrialQCProcess.SingleAudit:
|
case TrialQCProcess.SingleAudit:
|
||||||
visitList = await _subjectVisitRepository.Where(x => x.SubmitState == SubmitStateEnum.Submitted && x.TrialId == inDto.TrialId && x.PreliminaryAuditUserId!= _userInfo.Id&&(x.CurrentActionUserId == _userInfo.Id || (x.AuditState != AuditStateEnum.PrimaryQCPassed && !x.IsTake))).Include(x => x.Subject).ToListAsync();
|
visitList = await _subjectVisitRepository.Where(x => x.SubmitState == SubmitStateEnum.Submitted
|
||||||
|
&& x.TrialId == inDto.TrialId && x.PreliminaryAuditUserId!= _userInfo.Id&&(x.CurrentActionUserId == _userInfo.Id || (x.AuditState != AuditStateEnum.PrimaryQCPassed && !x.IsTake)))
|
||||||
|
.Where(x => x.QCChallengeList.Count() == 0 || x.QCChallengeList.Where(y=>!y.IsClosed).OrderByDescending(x => x.CreateTime).FirstOrDefault().CreateUserId != _userInfo.Id)
|
||||||
|
.Include(x => x.Subject).ToListAsync();
|
||||||
|
|
||||||
subjectVisit = visitList.Where(x => x.SubjectId == inDto.SubjectId).OrderBy(x=>x.VisitNum).FirstOrDefault();
|
subjectVisit = visitList.Where(x => x.SubjectId == inDto.SubjectId)
|
||||||
|
|
||||||
|
|
||||||
|
.OrderBy(x=>x.VisitNum).FirstOrDefault();
|
||||||
if(subjectVisit!=null)
|
if(subjectVisit!=null)
|
||||||
{
|
{
|
||||||
return new GetNextIQCQualityOutDto() {
|
return new GetNextIQCQualityOutDto() {
|
||||||
|
@ -957,7 +963,9 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
visitList = await _subjectVisitRepository.Where(x => x.SubmitState == SubmitStateEnum.Submitted && x.TrialId == inDto.TrialId &&
|
visitList = await _subjectVisitRepository.Where(x => x.SubmitState == SubmitStateEnum.Submitted && x.TrialId == inDto.TrialId &&
|
||||||
((x.CurrentActionUserId == _userInfo.Id)||(!x.IsTake&& x.AuditState != AuditStateEnum.QCPassed&& (x.PreliminaryAuditUserId != _userInfo.Id)))
|
((x.CurrentActionUserId == _userInfo.Id)||(!x.IsTake&& x.AuditState != AuditStateEnum.QCPassed&& (x.PreliminaryAuditUserId != _userInfo.Id)))
|
||||||
).Include(x => x.Subject).ToListAsync();
|
)
|
||||||
|
.Where(x => x.QCChallengeList.Count() == 0 || x.QCChallengeList.Where(y => !y.IsClosed).OrderByDescending(x => x.CreateTime).FirstOrDefault().CreateUserId !=_userInfo.Id)
|
||||||
|
.Include(x => x.Subject).ToListAsync();
|
||||||
if (subjectVisit != null)
|
if (subjectVisit != null)
|
||||||
{
|
{
|
||||||
return new GetNextIQCQualityOutDto()
|
return new GetNextIQCQualityOutDto()
|
||||||
|
|
|
@ -1442,7 +1442,22 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
/// 是否是第一次转化的任务
|
/// 是否是第一次转化的任务
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsFirstChangeTask { get; set; } = false;
|
public bool IsFirstChangeTask { get; set; } = false;
|
||||||
}
|
|
||||||
|
/// <summary>
|
||||||
|
/// 融合的PTSeriesId
|
||||||
|
/// </summary>
|
||||||
|
public Guid? PTSeriesId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 融合的CTSeriesId
|
||||||
|
/// </summary>
|
||||||
|
public Guid? CTSeriesId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// StudyId
|
||||||
|
/// </summary>
|
||||||
|
public Guid? OtherStudyId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class GetVisitReadingQuestionOutDto
|
public class GetVisitReadingQuestionOutDto
|
||||||
{
|
{
|
||||||
|
|
|
@ -202,13 +202,13 @@ namespace IRaCIS.Application.Services
|
||||||
.OrderBy(x => x.VisitTask.VisitTaskNum).Select(x => new GetPreviousOtherPicturePathOutDto()
|
.OrderBy(x => x.VisitTask.VisitTaskNum).Select(x => new GetPreviousOtherPicturePathOutDto()
|
||||||
{
|
{
|
||||||
VisitTaskId = x.VisitTaskId,
|
VisitTaskId = x.VisitTaskId,
|
||||||
PicturePath = x.PicturePath,
|
PicturePath = x.OtherPicturePath,
|
||||||
TaskBlindName = x.VisitTask.TaskBlindName
|
TaskBlindName = x.VisitTask.TaskBlindName
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return result.Where(x=>x.PicturePath!=string.Empty).ToList();
|
|
||||||
|
return result.Where(x => x.PicturePath != string.Empty && x.PicturePath != null).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -612,7 +612,22 @@ namespace IRaCIS.Application.Services
|
||||||
result = result.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToList();
|
result = result.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var item in result)
|
|
||||||
|
var visitaskIds = result.Select(x => x.VisitTaskId).ToList();
|
||||||
|
|
||||||
|
var otherStudys = await _readingTableAnswerRowInfoRepository.Where(x => visitaskIds.Contains(x.VisitTaskId))
|
||||||
|
.Where(x=>x.CTSeriesId!=null&&x.PTSeriesId!=null)
|
||||||
|
.Select(x => new
|
||||||
|
{
|
||||||
|
x.OtherStudyId,
|
||||||
|
x.CTSeriesId,
|
||||||
|
x.PTSeriesId,
|
||||||
|
x.VisitTaskId,
|
||||||
|
x.UpdateTime
|
||||||
|
}).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
foreach (var item in result)
|
||||||
{
|
{
|
||||||
var clinicalDataList = await _readingClinicalDataService.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto()
|
var clinicalDataList = await _readingClinicalDataService.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto()
|
||||||
{
|
{
|
||||||
|
@ -623,7 +638,15 @@ namespace IRaCIS.Application.Services
|
||||||
});
|
});
|
||||||
|
|
||||||
item.IsExistsClinicalData = clinicalDataList.Count > 0;
|
item.IsExistsClinicalData = clinicalDataList.Count > 0;
|
||||||
}
|
var otherStudy = otherStudys.Where(x => x.VisitTaskId == item.VisitTaskId).OrderByDescending(x => x.UpdateTime).FirstOrDefault();
|
||||||
|
if (otherStudy != null)
|
||||||
|
{
|
||||||
|
item.PTSeriesId = otherStudy.PTSeriesId;
|
||||||
|
item.CTSeriesId = otherStudy.CTSeriesId;
|
||||||
|
item.OtherStudyId = otherStudy.OtherStudyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1646,7 +1669,8 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
var query = _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == rowinfo.VisitTaskId && x.QuestionId == rowinfo.QuestionId && x.Id != rowinfo.Id)
|
var query = _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == rowinfo.VisitTaskId && x.QuestionId == rowinfo.QuestionId && x.Id != rowinfo.Id)
|
||||||
.Where(x => x.SplitOrMergeType != SplitOrMergeType.Split && x.SplitOrMergeType != SplitOrMergeType.SplitMain
|
.Where(x => x.SplitOrMergeType != SplitOrMergeType.Split && x.SplitOrMergeType != SplitOrMergeType.SplitMain
|
||||||
&&x.SplitOrMergeType!=SplitOrMergeType.Merge && x.SplitOrMergeType != SplitOrMergeType.MergeMain && x.SplitOrMergeType != SplitOrMergeType.MergeMained && x.SplitOrMergeType != SplitOrMergeType.Merged);
|
&&x.SplitOrMergeType!=SplitOrMergeType.Merge && x.SplitOrMergeType != SplitOrMergeType.MergeMain
|
||||||
|
&& x.SplitOrMergeType != SplitOrMergeType.Merged);
|
||||||
|
|
||||||
switch (taskInfo.TrialReadingCriterion.CriterionType)
|
switch (taskInfo.TrialReadingCriterion.CriterionType)
|
||||||
{
|
{
|
||||||
|
@ -1798,8 +1822,30 @@ namespace IRaCIS.Application.Services
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
var markquestionId = inDto.QuestionMarkInfoList.Select(y => y.QuestionId).ToList();
|
var markquestionId = inDto.QuestionMarkInfoList.Select(y => y.QuestionId).ToList();
|
||||||
await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId&& markquestionId.Contains(x.QuestionId));
|
|
||||||
var datetime = DateTime.Now;
|
var needDeleteMarkQuestonIds = inDto.Answers.Where(x => x.Answer == string.Empty).Select(x => x.Id).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
await _readingTaskQuestionMarkRepository.BatchUpdateNoTrackingAsync(x =>
|
||||||
|
(x.QuestionType == QuestionType.SplenicTopPosition || x.QuestionType == QuestionType.SplenicBottomPosition) &&
|
||||||
|
x.VisitTaskId == inDto.VisitTaskId && needDeleteMarkQuestonIds.Contains(x.QuestionId), x => new ReadingTaskQuestionMark()
|
||||||
|
{
|
||||||
|
PicturePath = string.Empty,
|
||||||
|
MeasureData = string.Empty,
|
||||||
|
}) ;
|
||||||
|
|
||||||
|
await _readingTaskQuestionMarkRepository.BatchUpdateNoTrackingAsync(x =>
|
||||||
|
(x.QuestionType == QuestionType.LiverSUVmax || x.QuestionType == QuestionType.MediastinumSUVmax) &&
|
||||||
|
x.VisitTaskId == inDto.VisitTaskId && needDeleteMarkQuestonIds.Contains(x.QuestionId), x => new ReadingTaskQuestionMark()
|
||||||
|
{
|
||||||
|
OtherPicturePath = string.Empty,
|
||||||
|
OtherMeasureData=string.Empty,
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && markquestionId.Contains(x.QuestionId));
|
||||||
|
|
||||||
|
var datetime = DateTime.Now;
|
||||||
|
|
||||||
var markList = _mapper.Map<List<QuestionMarkInfo>, List<ReadingTaskQuestionMark>>(inDto.QuestionMarkInfoList);
|
var markList = _mapper.Map<List<QuestionMarkInfo>, List<ReadingTaskQuestionMark>>(inDto.QuestionMarkInfoList);
|
||||||
markList.ForEach(x => {
|
markList.ForEach(x => {
|
||||||
|
@ -1851,21 +1897,21 @@ namespace IRaCIS.Application.Services
|
||||||
var index = await _readingCalculateService.GetDeleteLesionStatrIndex(inDto);
|
var index = await _readingCalculateService.GetDeleteLesionStatrIndex(inDto);
|
||||||
|
|
||||||
|
|
||||||
await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.RowId == inDto.RowId, x => new ReadingTableQuestionAnswer()
|
await _readingTableQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.RowId == inDto.RowId, x => new ReadingTableQuestionAnswer()
|
||||||
{
|
{
|
||||||
|
|
||||||
IsDeleted = true
|
IsDeleted = true
|
||||||
});
|
});
|
||||||
if (!(await _readingTableAnswerRowInfoRepository.AnyAsync(x => x.SplitRowId == deleteRowInfo.SplitRowId && x.Id != deleteRowInfo.Id)))
|
if (!(await _readingTableAnswerRowInfoRepository.AnyAsync(x => x.SplitRowId == deleteRowInfo.SplitRowId && x.Id != deleteRowInfo.Id)))
|
||||||
{
|
{
|
||||||
await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x => x.Id == deleteRowInfo.SplitRowId, x => new ReadingTableAnswerRowInfo()
|
await _readingTableAnswerRowInfoRepository.BatchUpdateNoTrackingAsync(x => x.Id == deleteRowInfo.SplitRowId, x => new ReadingTableAnswerRowInfo()
|
||||||
{
|
{
|
||||||
SplitOrMergeType = null,
|
SplitOrMergeType = null,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.RowId, x => new ReadingTableAnswerRowInfo()
|
await _readingTableAnswerRowInfoRepository.BatchUpdateNoTrackingAsync(x => x.Id == inDto.RowId, x => new ReadingTableAnswerRowInfo()
|
||||||
{
|
{
|
||||||
|
|
||||||
IsDeleted = true
|
IsDeleted = true
|
||||||
|
|
|
@ -1039,7 +1039,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
x.RowIndex >= (int)Math.Floor(inDto.RowNumber) && x.RowIndex < ((int)Math.Floor(inDto.RowNumber) + 1) &&
|
x.RowIndex >= (int)Math.Floor(inDto.RowNumber) && x.RowIndex < ((int)Math.Floor(inDto.RowNumber) + 1) &&
|
||||||
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.MajorAxis &&
|
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.MajorAxis &&
|
||||||
x.QuestionId== targetQuestion.Id
|
x.QuestionId== targetQuestion.Id
|
||||||
).Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0();
|
).Select(x => x.Answer).ToListAsync()).Select(x => x.IsNullOrEmptyReturn0()).Sum();
|
||||||
|
|
||||||
// 短径
|
// 短径
|
||||||
var shortAxis = (await _readingTableQuestionAnswerRepository.Where(x =>
|
var shortAxis = (await _readingTableQuestionAnswerRepository.Where(x =>
|
||||||
|
@ -1047,7 +1047,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
x.RowIndex >= (int)Math.Floor(inDto.RowNumber) && x.RowIndex < ((int)Math.Floor(inDto.RowNumber) + 1) &&
|
x.RowIndex >= (int)Math.Floor(inDto.RowNumber) && x.RowIndex < ((int)Math.Floor(inDto.RowNumber) + 1) &&
|
||||||
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.ShortAxis &&
|
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.ShortAxis &&
|
||||||
x.QuestionId == targetQuestion.Id
|
x.QuestionId == targetQuestion.Id
|
||||||
).Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0();
|
).Select(x => x.Answer).ToListAsync()).Select(x => x.IsNullOrEmptyReturn0()).Sum();
|
||||||
|
|
||||||
// 找到ppd问题
|
// 找到ppd问题
|
||||||
var ppdQuestion = await _readingTableQuestionTrialRepository.Where(x => x.ReadingQuestionId == targetQuestion.Id && x.QuestionMark == QuestionMark.PPD).FirstOrDefaultAsync();
|
var ppdQuestion = await _readingTableQuestionTrialRepository.Where(x => x.ReadingQuestionId == targetQuestion.Id && x.QuestionMark == QuestionMark.PPD).FirstOrDefaultAsync();
|
||||||
|
@ -1107,7 +1107,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
// 符合疾病进展
|
// 符合疾病进展
|
||||||
if (accord)
|
if (accord)
|
||||||
{
|
{
|
||||||
await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x =>
|
await _readingTableQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x =>
|
||||||
x.VisitTaskId == inDto.VisitTaskId &&
|
x.VisitTaskId == inDto.VisitTaskId &&
|
||||||
x.RowIndex == (int)Math.Floor(inDto.RowNumber) &&
|
x.RowIndex == (int)Math.Floor(inDto.RowNumber) &&
|
||||||
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State &&
|
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State &&
|
||||||
|
@ -1119,7 +1119,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
}
|
}
|
||||||
else if (state == TargetState.DiseaseProgression.GetEnumInt())
|
else if (state == TargetState.DiseaseProgression.GetEnumInt())
|
||||||
{
|
{
|
||||||
await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x =>
|
await _readingTableQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x =>
|
||||||
x.VisitTaskId == inDto.VisitTaskId &&
|
x.VisitTaskId == inDto.VisitTaskId &&
|
||||||
x.RowIndex == (int)Math.Floor(inDto.RowNumber) &&
|
x.RowIndex == (int)Math.Floor(inDto.RowNumber) &&
|
||||||
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State &&
|
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State &&
|
||||||
|
@ -1374,15 +1374,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
|
|
||||||
var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers).OrderBy(x => x.RowIndex).ToList();
|
var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers).OrderBy(x => x.RowIndex).ToList();
|
||||||
|
|
||||||
await _readingTaskQuestionMarkRepository.AddRangeAsync(questionMarkList);
|
foreach (var item in addList)
|
||||||
await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
|
|
||||||
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);
|
|
||||||
addList.ForEach(x =>
|
|
||||||
{
|
{
|
||||||
x.MergeRow = null;
|
await _readingTableAnswerRowInfoRepository.AddAsync(item);
|
||||||
x.SplitRow = null;
|
await _readingTableQuestionAnswerRepository.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
await _readingTaskQuestionMarkRepository.AddRangeAsync(questionMarkList);
|
||||||
|
//await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
|
||||||
|
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);
|
||||||
|
//addList.ForEach(x =>
|
||||||
|
//{
|
||||||
|
// x.MergeRow = null;
|
||||||
|
// x.SplitRow = null;
|
||||||
|
|
||||||
});
|
//});
|
||||||
await _readingTableQuestionAnswerRepository.SaveChangesAsync();
|
await _readingTableQuestionAnswerRepository.SaveChangesAsync();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,9 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
//1st QC进行了操作
|
//1st QC进行了操作
|
||||||
InPrimaryQC = 4,
|
InPrimaryQC = 4,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 单审通过
|
||||||
|
/// </summary>
|
||||||
PrimaryQCPassed = 5,
|
PrimaryQCPassed = 5,
|
||||||
|
|
||||||
//2nd QC进行操作
|
//2nd QC进行操作
|
||||||
|
|
|
@ -2278,6 +2278,15 @@ public enum SUVChangeVSBaseline
|
||||||
/// </summary>
|
/// </summary>
|
||||||
PSScoreRemarks = 59,
|
PSScoreRemarks = 59,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 脾尖位置
|
||||||
|
/// </summary>
|
||||||
|
SplenicTopPosition = 60,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 脾底位置
|
||||||
|
/// </summary>
|
||||||
|
SplenicBottomPosition = 61,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -61,10 +61,10 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 审核通过时间
|
/// 审核通过时间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? AuditSignTime { get; set; }
|
public DateTime? AuditSignTime { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 阅片人是否认同
|
/// 阅片人是否认同
|
||||||
|
|
|
@ -84,7 +84,9 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
public Guid? ForwardUserId { get; set; }
|
public Guid? ForwardUserId { get; set; }
|
||||||
public DateTime? ForwardTime { get; set; }
|
public DateTime? ForwardTime { get; set; }
|
||||||
|
|
||||||
// 质控领取人
|
/// <summary>
|
||||||
|
/// 当前质控领取人
|
||||||
|
/// </summary>
|
||||||
public Guid? CurrentActionUserId { get; set; }
|
public Guid? CurrentActionUserId { get; set; }
|
||||||
public DateTime? CurrentActionUserExpireTime { get; set; }
|
public DateTime? CurrentActionUserExpireTime { get; set; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue