修改监控

This commit is contained in:
2022-05-06 15:08:53 +08:00
parent 839646e410
commit f9183dc6f4
6 changed files with 165 additions and 101 deletions
@@ -132,103 +132,160 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
public async Task<PageOutput<UnionStudyMonitorModel>> GetDicomAndNoneDicomStudyMonitorList(StudyQuery studyQuery)
{
var dicomStudyQuery = _repository.Where<StudyMonitor>(t => t.TrialId == studyQuery.TrialId && t.IsDicom)
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
.WhereIf(!string.IsNullOrEmpty(studyQuery.VisitPlanInfo), studyQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.VisitNum.ToString().Contains(".") : t => t.SubjectVisit.VisitNum == decimal.Parse(studyQuery.VisitPlanInfo))
.WhereIf(!string.IsNullOrWhiteSpace(studyQuery.SubjectInfo), t => t.Subject.Code.Contains(studyQuery.SubjectInfo))
.Select(t => new UnionStudyMonitorModel()
{
TrialId = t.TrialId,
SiteId = t.SiteId,
SubjectId = t.SubjectId,
SubjectVisitId = t.SubjectVisitId,
VisitName = t.SubjectVisit.VisitName,
VisitNum = t.SubjectVisit.VisitNum,
SubjectCode = t.Subject.Code,
TrialSiteAliasName = t.TrialSite.TrialSiteAliasName,
TrialSiteCode = t.TrialSite.TrialSiteCode,
Uploader = t.Uploader.FullName,
UploadTime = t.CreateTime,
IP = t.IP,
FileCount = t.FileCount,
FileSize = t.FileSize,
UploadFinishedTime = t.UploadFinishedTime,
UploadStartTime = t.UploadStartTime,
TotalMillisecondsInterval = t.TotalMillisecondsInterval,
IsDicomReUpload = t.IsDicomReUpload,
StudyId = t.Id,
IsDicom = t.IsDicom,
StudyCode = t.DicomStudy.StudyCode
//DicomStudyCode = t.DicomStudy.StudyCode,
//NoneDicomCode = 0,
});
//.ProjectTo<UnionStudyViewDodel>(_mapper.ConfigurationProvider);
var nodeDicomStudyQuery = _repository.Where<StudyMonitor>(t => t.TrialId == studyQuery.TrialId && t.IsDicom == false)
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
.WhereIf(!string.IsNullOrEmpty(studyQuery.VisitPlanInfo), studyQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.VisitNum.ToString().Contains(".") : t => t.SubjectVisit.VisitNum == decimal.Parse(studyQuery.VisitPlanInfo))
.WhereIf(!string.IsNullOrWhiteSpace(studyQuery.SubjectInfo), t => t.Subject.Code.Contains(studyQuery.SubjectInfo))
var StudyMonitorQuery = _repository.Where<StudyMonitor>(t => t.TrialId == studyQuery.TrialId && t.IsDicom)
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
.WhereIf(!string.IsNullOrEmpty(studyQuery.VisitPlanInfo), studyQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.VisitNum.ToString().Contains(".") : t => t.SubjectVisit.VisitNum == decimal.Parse(studyQuery.VisitPlanInfo))
.WhereIf(!string.IsNullOrWhiteSpace(studyQuery.SubjectInfo), t => t.Subject.Code.Contains(studyQuery.SubjectInfo))
.WhereIf(studyQuery.SubjectId != null, t => t.SubjectId == studyQuery.SubjectId)
.WhereIf(studyQuery.SubjectVisitId != null, t => t.SubjectId == studyQuery.SubjectVisitId)
.WhereIf(studyQuery.SiteId != null, t => t.SiteId == studyQuery.SiteId)
.Select(t => new UnionStudyMonitorModel()
{
TrialId = t.TrialId,
SiteId = t.SiteId,
SubjectId = t.SubjectId,
SubjectVisitId = t.SubjectVisitId,
VisitName = t.SubjectVisit.VisitName,
VisitNum = t.SubjectVisit.VisitNum,
SubjectCode = t.Subject.Code,
TrialSiteAliasName = t.TrialSite.TrialSiteAliasName,
TrialSiteCode = t.TrialSite.TrialSiteCode,
Uploader = t.Uploader.FullName,
UploadTime = t.CreateTime,
IP = t.IP,
FileCount = t.FileCount,
FileSize = t.FileSize,
UploadFinishedTime = t.UploadFinishedTime,
UploadStartTime = t.UploadStartTime,
TotalMillisecondsInterval = t.TotalMillisecondsInterval,
IsDicomReUpload = t.IsDicomReUpload,
StudyId = t.Id,
IsDicom = t.IsDicom,
StudyCode = t.NoneDicomStudy.StudyCode
//DicomStudyCode = string.Empty,
//NoneDicomCode = t.NoneDicomStudy.Code,
});
//.ProjectTo<UnionStudyViewDodel>(_mapper.ConfigurationProvider);
{
TrialId = t.TrialId,
SiteId = t.SiteId,
SubjectId = t.SubjectId,
SubjectVisitId = t.SubjectVisitId,
VisitName = t.SubjectVisit.VisitName,
VisitNum = t.SubjectVisit.VisitNum,
SubjectCode = t.Subject.Code,
TrialSiteAliasName = t.TrialSite.TrialSiteAliasName,
TrialSiteCode = t.TrialSite.TrialSiteCode,
Uploader = t.Uploader.FullName,
UploadTime = t.CreateTime,
IP = t.IP,
FileCount = t.FileCount,
FileSize = t.FileSize,
UploadFinishedTime = t.UploadFinishedTime,
UploadStartTime = t.UploadStartTime,
TotalMillisecondsInterval = t.TotalMillisecondsInterval,
IsDicomReUpload = t.IsDicomReUpload,
StudyId = t.Id,
IsDicom = t.IsDicom,
StudyCode = t.StudyCode
});
return await StudyMonitorQuery.ToPagedListAsync(studyQuery.PageIndex, studyQuery.PageSize, string.IsNullOrEmpty(studyQuery.SortField) ? "UploadTime" : studyQuery.SortField, studyQuery.Asc);
#region
//var dicomStudyQuery = _repository.Where<StudyMonitor>(t => t.TrialId == studyQuery.TrialId && t.IsDicom)
// .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
// .WhereIf(!string.IsNullOrEmpty(studyQuery.VisitPlanInfo), studyQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.VisitNum.ToString().Contains(".") : t => t.SubjectVisit.VisitNum == decimal.Parse(studyQuery.VisitPlanInfo))
// .WhereIf(!string.IsNullOrWhiteSpace(studyQuery.SubjectInfo), t => t.Subject.Code.Contains(studyQuery.SubjectInfo))
// .Select(t => new UnionStudyMonitorModel()
// {
// TrialId = t.TrialId,
// SiteId = t.SiteId,
// SubjectId = t.SubjectId,
// SubjectVisitId = t.SubjectVisitId,
// VisitName = t.SubjectVisit.VisitName,
// VisitNum = t.SubjectVisit.VisitNum,
// SubjectCode = t.Subject.Code,
// TrialSiteAliasName = t.TrialSite.TrialSiteAliasName,
// TrialSiteCode = t.TrialSite.TrialSiteCode,
// Uploader = t.Uploader.FullName,
// UploadTime = t.CreateTime,
// IP = t.IP,
// FileCount = t.FileCount,
// FileSize = t.FileSize,
// UploadFinishedTime = t.UploadFinishedTime,
// UploadStartTime = t.UploadStartTime,
// TotalMillisecondsInterval = t.TotalMillisecondsInterval,
// IsDicomReUpload = t.IsDicomReUpload,
// StudyId = t.Id,
// IsDicom = t.IsDicom,
// StudyCode = t.DicomStudy.StudyCode
// //DicomStudyCode = t.DicomStudy.StudyCode,
// //NoneDicomCode = 0,
// });
////.ProjectTo<UnionStudyViewDodel>(_mapper.ConfigurationProvider);
//var nodeDicomStudyQuery = _repository.Where<StudyMonitor>(t => t.TrialId == studyQuery.TrialId && t.IsDicom == false)
// .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
// .WhereIf(!string.IsNullOrEmpty(studyQuery.VisitPlanInfo), studyQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.VisitNum.ToString().Contains(".") : t => t.SubjectVisit.VisitNum == decimal.Parse(studyQuery.VisitPlanInfo))
// .WhereIf(!string.IsNullOrWhiteSpace(studyQuery.SubjectInfo), t => t.Subject.Code.Contains(studyQuery.SubjectInfo))
// .Select(t => new UnionStudyMonitorModel()
// {
// TrialId = t.TrialId,
// SiteId = t.SiteId,
// SubjectId = t.SubjectId,
// SubjectVisitId = t.SubjectVisitId,
// VisitName = t.SubjectVisit.VisitName,
// VisitNum = t.SubjectVisit.VisitNum,
// SubjectCode = t.Subject.Code,
// TrialSiteAliasName = t.TrialSite.TrialSiteAliasName,
// TrialSiteCode = t.TrialSite.TrialSiteCode,
// Uploader = t.Uploader.FullName,
// UploadTime = t.CreateTime,
// IP = t.IP,
// FileCount = t.FileCount,
// FileSize = t.FileSize,
// UploadFinishedTime = t.UploadFinishedTime,
// UploadStartTime = t.UploadStartTime,
// TotalMillisecondsInterval = t.TotalMillisecondsInterval,
// IsDicomReUpload = t.IsDicomReUpload,
// StudyId = t.Id,
// IsDicom = t.IsDicom,
// StudyCode = t.NoneDicomStudy.StudyCode
// //DicomStudyCode = string.Empty,
// //NoneDicomCode = t.NoneDicomStudy.Code,
// });
////.ProjectTo<UnionStudyViewDodel>(_mapper.ConfigurationProvider);
//var unionQuery = dicomStudyQuery.Union(nodeDicomStudyQuery)
// .WhereIf(studyQuery.SubjectId != null, t => t.SubjectId == studyQuery.SubjectId)
// .WhereIf(studyQuery.SubjectVisitId != null, t => t.SubjectId == studyQuery.SubjectVisitId)
// .WhereIf(studyQuery.SiteId != null, t => t.SiteId == studyQuery.SiteId);
//return await unionQuery.ToPagedListAsync(studyQuery.PageIndex, studyQuery.PageSize, string.IsNullOrEmpty(studyQuery.SortField) ? "UploadTime" : studyQuery.SortField, studyQuery.Asc);
#endregion
var unionQuery = dicomStudyQuery.Union(nodeDicomStudyQuery)
.WhereIf(studyQuery.SubjectId != null, t => t.SubjectId == studyQuery.SubjectId)
.WhereIf(studyQuery.SubjectVisitId != null, t => t.SubjectId == studyQuery.SubjectVisitId)
.WhereIf(studyQuery.SiteId != null, t => t.SiteId == studyQuery.SiteId);
return await unionQuery.ToPagedListAsync(studyQuery.PageIndex, studyQuery.PageSize, string.IsNullOrEmpty(studyQuery.SortField) ? "UploadTime" : studyQuery.SortField, studyQuery.Asc);
}