增加患者信息查询,和Modality查询

IRC_NewDev
hang 2024-07-17 14:20:36 +08:00
parent 8fedcdaf00
commit c65a484b13
2 changed files with 41 additions and 21 deletions

View File

@ -1031,6 +1031,8 @@ namespace IRaCIS.Application.Contracts
public DateTime? LatestStudyTime { get; set; } public DateTime? LatestStudyTime { get; set; }
public string? Modalities { get; set; } public string? Modalities { get; set; }
public string? PatientInfo { get; set; }
} }
public class VisitPatientStudyFilterView public class VisitPatientStudyFilterView
{ {
@ -1048,6 +1050,11 @@ namespace IRaCIS.Application.Contracts
public string CalledAE { get; set; } = string.Empty; public string CalledAE { get; set; } = string.Empty;
public string CallingAE { get; set; } = string.Empty; public string CallingAE { 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 class PatientStudySimpleView: VisitPatientStudyFilterView public class PatientStudySimpleView: VisitPatientStudyFilterView

View File

@ -106,12 +106,12 @@ namespace IRaCIS.Application.Services
#region new ok #region new ok
var query = _patientRepository.Where(t=>t.TrialId==inQuery.TrialId) var query = _patientRepository.Where(t => t.TrialId == inQuery.TrialId)
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.PatientIdStr), t => t.PatientIdStr.Contains(inQuery.PatientIdStr)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.PatientIdStr), t => t.PatientIdStr.Contains(inQuery.PatientIdStr))
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.PatientName), t => t.PatientName.Contains(inQuery.PatientName)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.PatientName), t => t.PatientName.Contains(inQuery.PatientName))
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.SubejctCode), t => t.Subject.Code.Contains(inQuery.SubejctCode)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.SubejctCode), t => t.Subject.Code.Contains(inQuery.SubejctCode))
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.TrialSiteKeyInfo), t => t.TrialSite.TrialSiteCode.Contains(inQuery.TrialSiteKeyInfo) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.TrialSiteKeyInfo), t => t.TrialSite.TrialSiteCode.Contains(inQuery.TrialSiteKeyInfo)
|| t.TrialSite.TrialSiteAliasName.Contains(inQuery.TrialSiteKeyInfo)|| t.TrialSite.TrialSiteName.Contains(inQuery.TrialSiteKeyInfo)) || t.TrialSite.TrialSiteAliasName.Contains(inQuery.TrialSiteKeyInfo) || t.TrialSite.TrialSiteName.Contains(inQuery.TrialSiteKeyInfo))
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.CallingAE), t => t.SCPStudyList.Any(t => t.CallingAE == inQuery.CallingAE)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.CallingAE), t => t.SCPStudyList.Any(t => t.CallingAE == inQuery.CallingAE))
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.CalledAE), t => t.SCPStudyList.Any(t => t.CalledAE == inQuery.CalledAE)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.CalledAE), t => t.SCPStudyList.Any(t => t.CalledAE == inQuery.CalledAE))
.WhereIf(inQuery.BeginPushTime != null, t => t.LatestPushTime >= inQuery.BeginPushTime) .WhereIf(inQuery.BeginPushTime != null, t => t.LatestPushTime >= inQuery.BeginPushTime)
@ -146,12 +146,12 @@ namespace IRaCIS.Application.Services
StudyCount = patient.SCPStudyList.Count(), StudyCount = patient.SCPStudyList.Count(),
TrialId=patient.TrialId, TrialId = patient.TrialId,
SubejctId=patient.SubjectId, SubejctId = patient.SubjectId,
SubjectCode=patient.Subject.Code, SubjectCode = patient.Subject.Code,
TrialSiteAliasName=patient.TrialSite.TrialSiteAliasName, TrialSiteAliasName = patient.TrialSite.TrialSiteAliasName,
TrialSiteCode=patient.TrialSite.TrialSiteCode, TrialSiteCode = patient.TrialSite.TrialSiteCode,
TrialSiteName=patient.TrialSite.TrialSiteName TrialSiteName = patient.TrialSite.TrialSiteName
}; };
@ -193,9 +193,9 @@ namespace IRaCIS.Application.Services
SeriesCount = scpStudy.SeriesCount, SeriesCount = scpStudy.SeriesCount,
StudyTime = scpStudy.StudyTime, StudyTime = scpStudy.StudyTime,
SubjectVisitId= scpStudy.SubjectVisitId, SubjectVisitId = scpStudy.SubjectVisitId,
VisitName=scpStudy.SubjectVisit.VisitName, VisitName = scpStudy.SubjectVisit.VisitName,
BlindName=scpStudy.SubjectVisit.BlindName BlindName = scpStudy.SubjectVisit.BlindName
}; };
@ -212,7 +212,7 @@ namespace IRaCIS.Application.Services
public async Task<List<string>> GetDicomCalledAEList(Guid trialId) public async Task<List<string>> GetDicomCalledAEList(Guid trialId)
{ {
var list = await _scpStudyRepository.Where(t=>t.TrialId==trialId).Select(t => t.CalledAE).Distinct().ToListAsync(); var list = await _scpStudyRepository.Where(t => t.TrialId == trialId).Select(t => t.CalledAE).Distinct().ToListAsync();
return list; return list;
} }
@ -224,6 +224,13 @@ namespace IRaCIS.Application.Services
return list; 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>
/// 影像访视上传 检查列表 /// 影像访视上传 检查列表
/// </summary> /// </summary>
@ -233,16 +240,17 @@ namespace IRaCIS.Application.Services
public async Task<PageOutput<VisitPatientStudyFilterView>> GetVisitPatientStudyFilterList(VisitPatientStudyFilterQuery inQuery) public async Task<PageOutput<VisitPatientStudyFilterView>> GetVisitPatientStudyFilterList(VisitPatientStudyFilterQuery inQuery)
{ {
var trialSiteId=_subjectRepository.Where(t=>t.Id==inQuery.SubjectId).Select(t=>t.TrialSiteId).FirstOrDefault(); var trialSiteId = _subjectRepository.Where(t => t.Id == inQuery.SubjectId).Select(t => t.TrialSiteId).FirstOrDefault();
var query = from scpStudy in _scpStudyRepository var query = from scpStudy in _scpStudyRepository
//未绑定的患者,或者自己已绑定但是未绑定访视的 //未绑定的患者,或者自己已绑定但是未绑定访视的
.Where(t => t.Patient.SubjectId == null|| (t.Patient.SubjectId == inQuery.SubjectId && t.SubjectVisitId==null)) .Where(t => t.Patient.SubjectId == null || (t.Patient.SubjectId == inQuery.SubjectId && t.SubjectVisitId == null))
//中心 //中心
.Where(t=>t.TrialSiteId==trialSiteId) .Where(t => t.TrialSiteId == trialSiteId)
.WhereIf(inQuery.EarliestStudyTime != null, t => t.StudyTime >= inQuery.EarliestStudyTime) .WhereIf(inQuery.EarliestStudyTime != null, t => t.StudyTime >= inQuery.EarliestStudyTime)
.WhereIf(inQuery.LatestStudyTime != null, t => t.StudyTime <= inQuery.LatestStudyTime) .WhereIf(inQuery.LatestStudyTime != null, t => t.StudyTime <= inQuery.LatestStudyTime)
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.Modalities), t => t.Modalities.Contains(inQuery.Modalities)) .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() select new VisitPatientStudyFilterView()
{ {
Description = scpStudy.Description, Description = scpStudy.Description,
@ -254,6 +262,11 @@ namespace IRaCIS.Application.Services
SCPStudyId = scpStudy.Id, SCPStudyId = scpStudy.Id,
SeriesCount = scpStudy.SeriesCount, SeriesCount = scpStudy.SeriesCount,
StudyTime = scpStudy.StudyTime, StudyTime = scpStudy.StudyTime,
PatientAge = scpStudy.PatientAge,
PatientIdStr = scpStudy.PatientIdStr,
PatientName = scpStudy.PatientName,
PatientSex = scpStudy.PatientSex,
}; };
@ -276,7 +289,7 @@ namespace IRaCIS.Application.Services
{ {
var subjectId = inCommand.SubjectId; var subjectId = inCommand.SubjectId;
var subjectVisitId=inCommand.SubjectVisitId; var subjectVisitId = inCommand.SubjectVisitId;
var trialId = inCommand.TrialId; var trialId = inCommand.TrialId;