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

IRC_NewDev
hang 2024-03-20 10:17:08 +08:00
commit 700d111011
5 changed files with 79 additions and 8 deletions

View File

@ -11593,6 +11593,13 @@
<param name="isReading"></param> <param name="isReading"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Services.SubjectVisitService.GetDicomSeriesInfo(IRaCIS.Core.Application.Contracts.GetDicomSeriesInfoInDto)">
<summary>
获取Series信息
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Services.SubjectVisitService.GetPTAndCtSeries(IRaCIS.Core.Application.Contracts.GetPTAndCtSeriesInDto)"> <member name="M:IRaCIS.Core.Application.Services.SubjectVisitService.GetPTAndCtSeries(IRaCIS.Core.Application.Contracts.GetPTAndCtSeriesInDto)">
<summary> <summary>
获取PTAndCtSeries 获取PTAndCtSeries

View File

@ -208,7 +208,7 @@ namespace IRaCIS.Application.Services
} }
return result; return result.Where(x=>x.PicturePath!=string.Empty).ToList();
} }
/// <summary> /// <summary>

View File

@ -2075,7 +2075,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{ {
return "NA"; return "NA";
} }
if (TaskAnswer.Count() == 0)
{
return "0";
}
var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0(); var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
var lowSplenoncus = TaskAnswer.OrderBy(x => x.SpleenLength).Select(x => x.SpleenLength).FirstOrDefault(); var lowSplenoncus = TaskAnswer.OrderBy(x => x.SpleenLength).Select(x => x.SpleenLength).FirstOrDefault();
return (presentSpd - lowSplenoncus).ToString(); return (presentSpd - lowSplenoncus).ToString();
@ -2099,7 +2102,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{ {
return "NA"; return "NA";
} }
if (taskAnswer.Count() == 0)
{
return "NA";
}
var lowSplenoncus = taskAnswer.OrderBy(x => x.SpleenLength).FirstOrDefault(); var lowSplenoncus = taskAnswer.OrderBy(x => x.SpleenLength).FirstOrDefault();
return lowSplenoncus.BlindName; return lowSplenoncus.BlindName;

View File

@ -209,10 +209,13 @@ namespace IRaCIS.Core.Application.Contracts
public Guid CTSeriesId { get; set; } public Guid CTSeriesId { get; set; }
public Guid PTSeriesId { get; set; } public Guid PTSeriesId { get; set; }
public Guid StudyId { get; set; }
public Guid? SubjectVisitId { get; set; } public Guid? SubjectVisitId { get; set; }
public bool IsBaseLine { get; set; } public bool IsBaseLineTask { get; set; }
public string TaskBlindName { get; set; } = string.Empty; public string TaskBlindName { get; set; } = string.Empty;
@ -239,7 +242,13 @@ namespace IRaCIS.Core.Application.Contracts
public List<DicomSeriesDTO> PTSeriesList { get; set; } public List<DicomSeriesDTO> PTSeriesList { get; set; }
} }
public class GetPTAndCtSeriesInDto public class GetDicomSeriesInfoInDto
{
public Guid SeriesId { get; set; }
}
public class GetPTAndCtSeriesInDto
{ {
public Guid VisitTaskId { get; set; } public Guid VisitTaskId { get; set; }
} }

View File

@ -328,11 +328,58 @@ namespace IRaCIS.Core.Application.Services
} }
/// <summary> /// <summary>
/// 获取PTAndCtSeries /// 获取Series信息
/// </summary> /// </summary>
/// <param name="inDto"></param> /// <param name="inDto"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<DicomSeriesDTO> GetDicomSeriesInfo(GetDicomSeriesInfoInDto inDto)
{
DicomSeriesDTO series = await _repository.Where<DicomSeries>(s =>s.Id==inDto.SeriesId).ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).FirstNotNullAsync();
var instanceList = await _repository.Where<DicomInstance>(t => t.SeriesId==inDto.SeriesId)
.Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath }).ToListAsync();
series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList();
series.InstanceHtmlPathList = instanceList.Where(t => t.SeriesId == series.Id && t.HtmlPath != string.Empty).OrderBy(t => t.InstanceNumber).Select(k => k.HtmlPath).ToList();
//处理多帧
series.InstancePathList = instanceList.Where(s => s.SeriesId == series.Id).OrderBy(t => t.InstanceNumber)
.SelectMany(u =>
{
if (u.NumberOfFrames > 1)
{
var pathList = new List<string>();
for (int i = 1; i <= u.NumberOfFrames; i++)
{
pathList.Add(u.Path + "?frame=" + (i - 1));
}
return pathList;
}
else
{
return new List<string> { u.Path };
}
})
.ToList();
series.WindowWidth = instanceList.FirstOrDefault()!.WindowWidth;
series.WindowCenter = instanceList.FirstOrDefault()!.WindowCenter;
return series;
}
/// <summary>
/// 获取PTAndCtSeries
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<List<GetPTAndCtSeriesOutDto>> GetPTAndCtSeries(GetPTAndCtSeriesInDto inDto) public async Task<List<GetPTAndCtSeriesOutDto>> GetPTAndCtSeries(GetPTAndCtSeriesInDto inDto)
{ {
@ -376,7 +423,7 @@ namespace IRaCIS.Core.Application.Services
TaskBlindName=visitSeries.TaskBlindName, TaskBlindName=visitSeries.TaskBlindName,
VisitTaskId= item, VisitTaskId= item,
SubjectVisitId= visitSeries.SourceSubjectVisitId!.Value, SubjectVisitId= visitSeries.SourceSubjectVisitId!.Value,
IsBaseLine=visitSeries.IsBaseLine, IsBaseLineTask=visitSeries.IsBaseLine,
}); });
@ -451,7 +498,9 @@ namespace IRaCIS.Core.Application.Services
foreach (var item in result) foreach (var item in result)
{ {
item.StudyInfoList = studyList.Where(x => x.SubjectVisitId == item.SubjectVisitId).ToList(); item.StudyId = ptseriesLists.Where(x => x.Id == item.PTSeriesId).Select(x => x.StudyId).FirstOrDefault();
item.StudyInfoList = studyList.Where(x => x.SubjectVisitId == item.SubjectVisitId).ToList();
foreach (var study in item.StudyInfoList) foreach (var study in item.StudyInfoList)
{ {