Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing Details

IRC_NewDev
he 2024-07-18 10:05:29 +08:00
commit ab9203eef0
4 changed files with 93 additions and 23 deletions

View File

@ -11,6 +11,7 @@ using FellowOakDicom.Network;
using IRaCIS.Core.SCP.Service;
using IRaCIS.Core.Infra.EFCore;
using MassTransit;
using System.Runtime.Intrinsics.X86;
namespace IRaCIS.Core.SCP.Service
{
@ -115,6 +116,20 @@ namespace IRaCIS.Core.SCP.Service
{
findPatient.PatientBirthDate = birthDateStr;
DateTime birthDate;
if (findPatient.PatientAge == string.Empty && studyTime.HasValue && DateTime.TryParse(findPatient.PatientBirthDate,out birthDate))
{
var patientAge = studyTime.Value.Year - birthDate.Year;
// 如果生日还未到,年龄减去一岁
if (studyTime.Value < birthDate.AddYears(patientAge))
{
patientAge--;
}
findPatient.PatientAge = patientAge.ToString();
}
}
else
{

View File

@ -14621,6 +14621,19 @@
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.ClearSkipReadingCache">
<summary>
清除跳过阅片的缓存
</summary>
<returns></returns>
</member>
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.SetSkipReadingCache(IRaCIS.Core.Application.Service.Reading.Dto.SetSkipReadingCacheInDto)">
<summary>
设置跳过阅片的缓存
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.GetNextTask(IRaCIS.Core.Application.Service.Reading.Dto.GetNextTaskInDto)">
<summary>
获取下一个阅片任务

View File

@ -1031,6 +1031,8 @@ namespace IRaCIS.Application.Contracts
public DateTime? LatestStudyTime { get; set; }
public string? Modalities { get; set; }
public string? PatientInfo { get; set; }
}
public class VisitPatientStudyFilterView
{
@ -1048,12 +1050,34 @@ namespace IRaCIS.Application.Contracts
public string CalledAE { get; set; } = string.Empty;
public string CallingAE { get; set; } = string.Empty;
public string BodyPartExamined { get; set; } = string.Empty;
public string PatientIdStr { get; set; } = string.Empty;
public string PatientName { get; set; } = string.Empty;
public string PatientAge { get; set; } = string.Empty;
public string PatientSex { get; set; } = string.Empty;
public string PatientBirthDate { get; set; } = string.Empty;
}
public class PatientStudySimpleView: VisitPatientStudyFilterView
public class PatientStudySimpleView
{
public Guid SCPStudyId { get; set; }
public Guid PatientId { get; set; }
public DateTime? StudyTime { get; set; }
public string Modalities { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public int SeriesCount { get; set; } = 0;
public int InstanceCount { get; set; } = 0;
public string CalledAE { get; set; } = string.Empty;
public string CallingAE { get; set; } = string.Empty;
public Guid? SubjectVisitId { get; set; }
public string? VisitName { get; set; }

View File

@ -193,6 +193,9 @@ namespace IRaCIS.Application.Services
SeriesCount = scpStudy.SeriesCount,
StudyTime = scpStudy.StudyTime,
SubjectVisitId = scpStudy.SubjectVisitId,
VisitName = scpStudy.SubjectVisit.VisitName,
BlindName = scpStudy.SubjectVisit.BlindName
@ -224,6 +227,13 @@ namespace IRaCIS.Application.Services
return list;
}
public async Task<List<string>> GetDicomModalityList(Guid trialId)
{
var list = await _scpStudyRepository.Where(t => t.TrialId == trialId).SelectMany(t => t.SeriesList).Select(t=>t.Modality).Distinct().ToListAsync();
return list;
}
/// <summary>
/// 影像访视上传 检查列表
/// </summary>
@ -243,6 +253,7 @@ namespace IRaCIS.Application.Services
.WhereIf(inQuery.EarliestStudyTime != null, t => t.StudyTime >= inQuery.EarliestStudyTime)
.WhereIf(inQuery.LatestStudyTime != null, t => t.StudyTime <= inQuery.LatestStudyTime)
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.Modalities), t => t.Modalities.Contains(inQuery.Modalities))
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.PatientInfo), t => t.PatientIdStr.Contains(inQuery.PatientInfo) || t.PatientName.Contains(inQuery.PatientInfo) || t.PatientSex.Contains(inQuery.PatientInfo))
select new VisitPatientStudyFilterView()
{
Description = scpStudy.Description,
@ -254,6 +265,13 @@ namespace IRaCIS.Application.Services
SCPStudyId = scpStudy.Id,
SeriesCount = scpStudy.SeriesCount,
StudyTime = scpStudy.StudyTime,
BodyPartExamined=scpStudy.BodyPartExamined,
PatientBirthDate=scpStudy.PatientBirthDate,
PatientAge = scpStudy.PatientAge,
PatientIdStr = scpStudy.PatientIdStr,
PatientName = scpStudy.PatientName,
PatientSex = scpStudy.PatientSex,
};