获取可融合的病灶
parent
f9ac64023a
commit
8b86bc6b3f
|
@ -1310,6 +1310,13 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.Interface.ILuganoCalculateService.CalculateTargetLesionStatus(IRaCIS.Core.Application.ViewModel.CalculateTargetLesionStatusInDto)">
|
||||||
|
<summary>
|
||||||
|
计算靶病灶状态
|
||||||
|
</summary>
|
||||||
|
<param name="inDto"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="F:IRaCIS.Core.Application.Service.ReadingCalculate.IRECIST1Point1CalculateService.sODData">
|
<member name="F:IRaCIS.Core.Application.Service.ReadingCalculate.IRECIST1Point1CalculateService.sODData">
|
||||||
<summary>
|
<summary>
|
||||||
获取Sod的值
|
获取Sod的值
|
||||||
|
@ -13413,6 +13420,13 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.GetCanMergeLesion(IRaCIS.Core.Application.Service.Reading.Dto.GetCanMergeLesionInDto)">
|
||||||
|
<summary>
|
||||||
|
获取可合并的病灶
|
||||||
|
</summary>
|
||||||
|
<param name="inDto"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.SaveImageQuality(IRaCIS.Core.Application.Service.Reading.Dto.ChangeDicomReadingQuestionAnswerInDto)">
|
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.SaveImageQuality(IRaCIS.Core.Application.Service.Reading.Dto.ChangeDicomReadingQuestionAnswerInDto)">
|
||||||
<summary>
|
<summary>
|
||||||
保存影像质量
|
保存影像质量
|
||||||
|
|
|
@ -297,6 +297,26 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
public List<CrterionDictionaryGroup> CrterionDictionaryGroup { get; set; }
|
public List<CrterionDictionaryGroup> CrterionDictionaryGroup { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class GetCanMergeLesionOutDto
|
||||||
|
{
|
||||||
|
public Guid RowId { get; set; }
|
||||||
|
|
||||||
|
public string OrderMarkName { get; set; }
|
||||||
|
|
||||||
|
public Guid? OrganInfoId { get; set; }
|
||||||
|
|
||||||
|
public decimal RowIndex { get; set; }
|
||||||
|
|
||||||
|
public string Part { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class GetCanMergeLesionInDto
|
||||||
|
{
|
||||||
|
public Guid RowId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class MergeLesionInDto
|
public class MergeLesionInDto
|
||||||
{
|
{
|
||||||
public Guid VisitTaskId { get; set; }
|
public Guid VisitTaskId { get; set; }
|
||||||
|
|
|
@ -1515,6 +1515,64 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取可合并的病灶
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<List<GetCanMergeLesionOutDto>> GetCanMergeLesion(GetCanMergeLesionInDto inDto)
|
||||||
|
{
|
||||||
|
var rowinfo = await _readingTableAnswerRowInfoRepository.Where(x => x.Id == inDto.RowId).Include(x=>x.ReadingQuestionTrial).FirstNotNullAsync();
|
||||||
|
|
||||||
|
// 需要排除的状态
|
||||||
|
var needFilterState = new List<string>();
|
||||||
|
|
||||||
|
switch (rowinfo.ReadingQuestionTrial.LesionType)
|
||||||
|
{
|
||||||
|
//状态为“消失”、“无法评估”的靶病灶不可融合;
|
||||||
|
case LesionType.TargetLesion:
|
||||||
|
needFilterState = new List<string>() {
|
||||||
|
TargetState.Loss.GetEnumInt(),
|
||||||
|
TargetState.UnableEvaluate.GetEnumInt(),
|
||||||
|
};
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var result = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == rowinfo.VisitTaskId && x.QuestionId == rowinfo.QuestionId && x.Id != rowinfo.Id)
|
||||||
|
// 筛选状态
|
||||||
|
.Where(x => x.LesionAnswerList.Any(y => y.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && !needFilterState.Contains(y.Answer)))
|
||||||
|
.Select(x => new GetCanMergeLesionOutDto()
|
||||||
|
{
|
||||||
|
RowId = x.Id,
|
||||||
|
RowIndex = x.RowIndex,
|
||||||
|
OrderMarkName = x.ReadingQuestionTrial.OrderMark + x.RowIndex.GetLesionMark(),
|
||||||
|
OrganInfoId = x.OrganInfoId
|
||||||
|
}).OrderBy(x=>x.RowIndex).ToListAsync();
|
||||||
|
|
||||||
|
var organIds = result.Where(x => x.OrganInfoId != null).Select(x => x.OrganInfoId).Distinct().ToList();
|
||||||
|
var organList = await _organInfoRepository.Where(x => organIds.Contains(x.Id)).ToListAsync();
|
||||||
|
|
||||||
|
result.ForEach(x =>
|
||||||
|
{
|
||||||
|
|
||||||
|
if (_userInfo.IsEn_Us)
|
||||||
|
{
|
||||||
|
x.Part = organList.Where(y => y.Id == x.OrganInfoId).Select(y => y.PartEN).FirstIsNullReturnEmpty();
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
x.Part = organList.Where(y => y.Id == x.OrganInfoId).Select(y => y.Part).FirstIsNullReturnEmpty();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue