Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8

IRC_NewDev
hang 2024-04-08 17:30:40 +08:00
commit d9a8692be8
4 changed files with 164 additions and 46 deletions

View File

@ -1761,6 +1761,11 @@
基线任务Id 基线任务Id
</summary> </summary>
</member> </member>
<member name="F:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.isUnableFuse">
<summary>
影像是否无法融合
</summary>
</member>
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetDeleteLesionStatrIndex(IRaCIS.Core.Application.Service.Reading.Dto.DeleteReadingRowAnswerInDto)"> <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetDeleteLesionStatrIndex(IRaCIS.Core.Application.Service.Reading.Dto.DeleteReadingRowAnswerInDto)">
<summary> <summary>
删除病灶获取起始病灶序号RECIST1Point1 固定是1 删除病灶获取起始病灶序号RECIST1Point1 固定是1
@ -1811,6 +1816,13 @@
<param name="calculateType"></param> <param name="calculateType"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.ImageQualityIsUnableFuse(IRaCIS.Core.Application.Service.Reading.Dto.ReadingCalculateDto)">
<summary>
获取影像是否无法融合
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetReportTumor(System.Guid)"> <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetReportTumor(System.Guid)">
<summary> <summary>
获取报告整体整体评估 获取报告整体整体评估

View File

@ -111,7 +111,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
/// </summary> /// </summary>
private Guid? BaseLineTaskId; private Guid? BaseLineTaskId;
private string nAString = "NA"; /// <summary>
/// 影像是否无法融合
/// </summary>
private bool? isUnableFuse;
private string nAString = "NA";
#endregion #endregion
#region 删除病灶获取起始病灶序号 #region 删除病灶获取起始病灶序号
@ -767,13 +773,32 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
} }
/// <summary>
/// 获取影像是否无法融合
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
public async Task<bool> ImageQualityIsUnableFuse(ReadingCalculateDto inDto)
{
if (isUnableFuse != null)
{
return isUnableFuse.Value;
}
else
{
var imageQualityProblem = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.ImageQualityProblem).Select(x => x.Answer).FirstOrDefault();
isUnableFuse = imageQualityProblem == ((int)ImageQualityIssues.PETCTFailureFuse).ToString();
return isUnableFuse.Value;
}
/// <summary> }
/// 获取报告整体整体评估
/// </summary> /// <summary>
/// <param name="visitTaskId"></param> /// 获取报告整体整体评估
/// <returns></returns> /// </summary>
public async Task<string> GetReportTumor(Guid visitTaskId) /// <param name="visitTaskId"></param>
/// <returns></returns>
public async Task<string> GetReportTumor(Guid visitTaskId)
{ {
return await GetTumor(await _generalCalculateService.GetReadingCalculateDto(visitTaskId)); return await GetTumor(await _generalCalculateService.GetReadingCalculateDto(visitTaskId));
} }
@ -2428,11 +2453,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
//无需标记,自主选择 //无需标记,自主选择
else else
{ {
Console.WriteLine("计算了PET5PS,当前接口" + _userInfo.RequestUrl + "当前结果");
return string.Empty; return string.Empty;
} }
Console.WriteLine("计算了PET5PS,当前接口" + _userInfo.RequestUrl+"当前结果"+ result.GetEnumInt());
return result.GetEnumInt(); return result.GetEnumInt();
} }
#endregion #endregion

View File

@ -402,39 +402,67 @@ namespace IRaCIS.Core.Domain.Share
Min = 9 Min = 9
} }
/// <summary> /// <summary>
/// 数值单位 /// 数值单位
/// </summary> /// </summary>
public enum ValueUnit public enum ValueUnit
{ {
None = 0, /// <summary>
/// 无
/// </summary>
none = 0,
/// <summary> /// <summary>
/// MM /// mm
/// </summary> /// </summary>
MM = 1, mm = 1,
/// <summary> /// <summary>
/// CM /// cm
/// </summary> /// </summary>
CM = 2, cm = 2,
/// <summary> /// <summary>
/// 个 /// 个
/// </summary> /// </summary>
Individual = 3, individual = 3,
/// <summary> /// <summary>
/// 自定义 /// 自定义
/// </summary> /// </summary>
Custom = 4, Custom = 4,
}
/// <summary>
/// mm2
/// </summary>
mm2 = 5,
/// <summary>
/// mm3
/// </summary>
mm3 = 6,
/// <summary>
/// SUV
/// </summary>
SUV = 7,
/// <summary>
/// HU
/// </summary>
HU = 8,
/// <summary>
/// %
/// </summary>
percentage = 9,
}
/// <summary> /// <summary>
/// 数值类型 /// 数值类型
/// </summary> /// </summary>
public enum ValueOfType public enum ValueOfType
{ {
/// <summary> /// <summary>
@ -1973,10 +2001,49 @@ public enum SUVChangeVSBaseline
} }
/// <summary>
/// 问题类型 这里序号关系着计算顺序 请勿修改 /// <summary>
/// </summary> /// 影像质量问题
public enum QuestionType /// </summary>
public enum ImageQualityIssues
{
/// <summary>
/// 解剖不完整
/// </summary>
IncompleteAnatomy = 1,
/// <summary>
/// 扫描断层丢失
/// </summary>
MissingScanSlice=2,
/// <summary>
/// 存在运动伪影
/// </summary>
MotionArtifactsPresent = 3,
/// <summary>
/// 关键解剖部位缺失
/// </summary>
KeyAnatomyOutOfFieldOfView = 4,
/// <summary>
/// 其它(需要备注)
/// </summary>
OtherIssuesCommentsRequired=5,
/// <summary>
/// PET-CT影像无法融合
/// </summary>
PETCTFailureFuse = 6,
}
/// <summary>
/// 问题类型 这里序号关系着计算顺序 请勿修改
/// </summary>
public enum QuestionType
{ {
/// <summary> /// <summary>
/// 靶病灶径线之和SOD /// 靶病灶径线之和SOD
@ -2287,6 +2354,11 @@ public enum SUVChangeVSBaseline
/// 脾底位置 /// 脾底位置
/// </summary> /// </summary>
SplenicBottomPosition = 61, SplenicBottomPosition = 61,
/// <summary>
/// 影像质量问题
/// </summary>
ImageQualityProblem = 67,
} }

View File

@ -2700,7 +2700,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common
// 保存影像质量 、 修改整体肿瘤评估结果 、 非dicom 保存访视阅片结果 、附加评估 // 保存影像质量 、 修改整体肿瘤评估结果 、 非dicom 保存访视阅片结果 、附加评估
if (_userInfo.RequestUrl == "ReadingImageTask/changeDicomReadingQuestionAnswer" if (_userInfo.RequestUrl == "ReadingImageTask/changeDicomReadingQuestionAnswer"
|| _userInfo.RequestUrl == "ReadingImageTask/saveImageQuality" || _userInfo.RequestUrl == "ReadingImageTask/saveImageQuality"
|| _userInfo.RequestUrl == "ReadingImageTask/saveVisitTaskQuestions" || _userInfo.RequestUrl.Contains("SaveTaskQuestion")
|| _userInfo.RequestUrl == "ReadingImageTask/saveVisitTaskQuestions"
|| _userInfo.RequestUrl == "ReadingImageTask/changeCalculationAnswer" || _userInfo.RequestUrl == "ReadingImageTask/changeCalculationAnswer"
|| _userInfo.RequestUrl == "ReadingImageTask/submitTaskAdditionalQuestion") || _userInfo.RequestUrl == "ReadingImageTask/submitTaskAdditionalQuestion")
{ {
@ -2718,7 +2719,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common
t.QuestionEnName, t.QuestionEnName,
QuestionId = t.Id, QuestionId = t.Id,
t.DictionaryCode, t.DictionaryCode,
t.ShowOrder, t.Unit,
t.ShowOrder,
AnswerType = t.Type, AnswerType = t.Type,
}).OrderBy(t => t.ShowOrder).ToListAsync(); }).OrderBy(t => t.ShowOrder).ToListAsync();
@ -2790,8 +2792,11 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}, new }, new
{ {
QuestionAnswerList = taskQuestionAnswerList.Join(quesionList, t => t.ReadingQuestionTrialId, u => u.QuestionId, (t, u) => QuestionAnswerList = taskQuestionAnswerList.Join(quesionList,
new { Answer = u.AnswerType == "upload" ? "❄❅❆❇❈❉❊" + t.Answer : t.Answer, u.DictionaryCode, u.QuestionName, u.QuestionEnName, u.ShowOrder }).OrderBy(t => t.ShowOrder).ToList() t => t.ReadingQuestionTrialId,
u => u.QuestionId,
(t, u) =>
new { Answer = u.AnswerType == "upload" ? "❄❅❆❇❈❉❊" + t.Answer : t.Answer, u.DictionaryCode, u.QuestionName, u.QuestionEnName, u.ShowOrder }).OrderBy(t => t.ShowOrder).ToList()
, ,
TableQuestionAndAnswerList = tableQuesionAndAnswerList TableQuestionAndAnswerList = tableQuesionAndAnswerList
} }
@ -2848,9 +2853,15 @@ namespace IRaCIS.Core.Infra.EFCore.Common
originalRowMark = await _dbContext.ReadingTableAnswerRowInfo.Where(t => t.Id == entity.SplitRowId).Select(t => t.RowMark).FirstOrDefaultAsync(); originalRowMark = await _dbContext.ReadingTableAnswerRowInfo.Where(t => t.Id == entity.SplitRowId).Select(t => t.RowMark).FirstOrDefaultAsync();
} }
//处理标识 因为触发器在稽查后才进行操作 //处理标识 因为触发器在稽查后才进行操作
entity.RowMark = entity.OrderMark + entity.RowIndex.GetLesionMark(); if (entity.OrderMark == string.Empty)
{
entity.OrderMark = await _dbContext.ReadingQuestionTrial.Where(x => x.Id == entity.QuestionId).Select(x => x.OrderMark).FirstOrDefaultAsync();
}
entity.RowMark = entity.OrderMark + entity.RowIndex.GetLesionMark();