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

Uat_IRC_Net8
he 2025-12-16 13:29:21 +08:00
commit e9a73876b1
7 changed files with 146 additions and 70 deletions

View File

@ -86,7 +86,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer
var noneDicomQuey = from sv in _subjectVisitRepository.Where(subjectVisitLambda) var noneDicomQuey = from sv in _subjectVisitRepository.Where(subjectVisitLambda)
join subject in _subjectRepository.AsQueryable() on sv.SubjectId equals subject.Id join subject in _subjectRepository.AsQueryable() on sv.SubjectId equals subject.Id
join noneDicomStudy in _noneDicomStudyRepository.AsQueryable() on sv.Id equals noneDicomStudy.SubjectVisitId join noneDicomStudy in _noneDicomStudyRepository.Where(t => t.FileCount > 0) on sv.Id equals noneDicomStudy.SubjectVisitId
select new CheckDBModel() select new CheckDBModel()
{ {
SubjectVisitId = sv.Id, SubjectVisitId = sv.Id,

View File

@ -147,6 +147,8 @@ public class IvusExportDto : IVUS_OCTBaseDto
/// <summary>PAV (如无可不填)</summary> /// <summary>PAV (如无可不填)</summary>
public string PAV { get; set; } public string PAV { get; set; }
public string DOST { get; set; }
} }
/// <summary> /// <summary>
@ -154,6 +156,11 @@ public class IvusExportDto : IVUS_OCTBaseDto
/// </summary> /// </summary>
public class OctExportDto : IVUS_OCTBaseDto public class OctExportDto : IVUS_OCTBaseDto
{ {
/// <summary>
/// 斑块到血管开口的距离
/// </summary>
public string DOST { get; set; }
/// <summary>靶段</summary> /// <summary>靶段</summary>
public string TARGETV { get; set; } public string TARGETV { get; set; }
@ -444,6 +451,11 @@ public class IVUS_OCTExportService(IRepository<ReadingQuestionCriterionTrial> _r
ivus.PAV = findPAVLession?.LessionAnswerList.Where(t => t.QuestionMark == QuestionMark.PAV).FirstOrDefault()?.QuestionValue ?? string.Empty; ivus.PAV = findPAVLession?.LessionAnswerList.Where(t => t.QuestionMark == QuestionMark.PAV).FirstOrDefault()?.QuestionValue ?? string.Empty;
ivus.DOST = findPAVLession?.LessionAnswerList.Where(t => t.QuestionMark == QuestionMark.PlaqueToOstiumDistance).FirstOrDefault()?.QuestionValue ?? string.Empty;
ivusList.Add(ivus); ivusList.Add(ivus);
} }
@ -785,6 +797,8 @@ public class IVUS_OCTExportService(IRepository<ReadingQuestionCriterionTrial> _r
} }
// 斑块到血管开口的距离
oct.DOST = findLession?.LessionAnswerList.Where(t => t.QuestionMark == QuestionMark.PlaqueToOstiumDistance).FirstOrDefault()?.QuestionValue ?? string.Empty;
// 匹配动脉段最小FCT // 匹配动脉段最小FCT
oct.MINFCT = findLession?.LessionAnswerList.Where(t => t.QuestionMark == QuestionMark.MiniMumFCT).FirstOrDefault()?.QuestionValue ?? string.Empty; oct.MINFCT = findLession?.LessionAnswerList.Where(t => t.QuestionMark == QuestionMark.MiniMumFCT).FirstOrDefault()?.QuestionValue ?? string.Empty;

View File

@ -1763,22 +1763,22 @@ x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.LesionNumber && x.Readi
await _trialEmailNoticeConfigRepository.SaveChangesAsync(); await _trialEmailNoticeConfigRepository.SaveChangesAsync();
var cronInfo = await _trialEmailNoticeConfigRepository.Where(t => t.Id == addOrEditTrialEmailNoticeConfig.Id) // var cronInfo = await _trialEmailNoticeConfigRepository.Where(t => t.Id == addOrEditTrialEmailNoticeConfig.Id)
.Select(t => new { t.Id, t.Code, TrialCode = t.Trial.TrialCode, t.EmailCron, t.BusinessScenarioEnum, t.TrialId }) //.Select(t => new { t.Id, t.Code, TrialCode = t.Trial.TrialCode, t.EmailCron, t.BusinessScenarioEnum, t.TrialId })
.FirstAsync(); //.FirstAsync();
var jobId = $"{cronInfo.TrialId}({cronInfo.TrialCode})_({cronInfo.BusinessScenarioEnum})"; // var jobId = $"{cronInfo.TrialId}({cronInfo.TrialCode})_({cronInfo.BusinessScenarioEnum})";
if (addOrEditTrialEmailNoticeConfig.IsAutoSend) // if (addOrEditTrialEmailNoticeConfig.IsAutoSend)
{ // {
HangfireJobHelper.AddOrUpdateTrialCronJob(jobId, addOrEditTrialEmailNoticeConfig.TrialId, addOrEditTrialEmailNoticeConfig.BusinessScenarioEnum, addOrEditTrialEmailNoticeConfig.EmailCron); // HangfireJobHelper.AddOrUpdateTrialCronJob(jobId, addOrEditTrialEmailNoticeConfig.TrialId, addOrEditTrialEmailNoticeConfig.BusinessScenarioEnum, addOrEditTrialEmailNoticeConfig.EmailCron);
} // }
else // else
{ // {
HangfireJobHelper.RemoveCronJob(jobId); // HangfireJobHelper.RemoveCronJob(jobId);
} // }
return ResponseOutput.Ok(); return ResponseOutput.Ok();
} }

View File

@ -901,7 +901,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
/// <param name="inQuery"></param> /// <param name="inQuery"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<IResponseOutput<List<TaskNoneDicomStudyDTO>>> GetIRUploadTaskNoneDicomStudyList(IRUploadStudyQuery inQuery) public async Task<IResponseOutput<List<TaskNoneDicomStudyDTO>>> GetIRUploadTaskNoneDicomStudyList([FromServices] INoneDicomStudyService _noneDicomStudyService, IRUploadStudyQuery inQuery)
{ {
var subjectCode = inQuery.SubjectCode; var subjectCode = inQuery.SubjectCode;
var subjectId = inQuery.SubjectId; var subjectId = inQuery.SubjectId;
@ -926,7 +926,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
} }
var info = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId) var info = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId)
.Select(t => new { t.IsImageFilter, t.CriterionModalitys, t.IsReadingTaskViewInOrder }).FirstNotNullAsync(); .Select(t => new { t.IsImageFilter, t.CriterionType, t.TrialId, t.CriterionModalitys, t.IsReadingTaskViewInOrder }).FirstNotNullAsync();
var config = await _subjectRepository.Where(t => t.Id == subjectId).Select(t => new { t.Trial.ImageFormatList, t.Trial.StudyNameList, t.Trial.IsShowStudyName }).FirstOrDefaultAsync(); var config = await _subjectRepository.Where(t => t.Id == subjectId).Select(t => new { t.Trial.ImageFormatList, t.Trial.StudyNameList, t.Trial.IsShowStudyName }).FirstOrDefaultAsync();
@ -934,6 +934,61 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
//靶段标注上传,查看访视级别,上传绑定访视级别 //靶段标注上传,查看访视级别,上传绑定访视级别
if (inQuery.IsImageSegmentLabel == true) if (inQuery.IsImageSegmentLabel == true)
{ {
//存在ivus 和oct 这两种的项目
if (_readingQuestionCriterionTrialRepository.Where(t => t.TrialId == info.TrialId &&
(t.CriterionType == CriterionType.IVUS || t.CriterionType == CriterionType.OCT)).Distinct().Count() == 2
&& !_noneDicomStudyReposiotry.Any(t => t.SubjectId == inQuery.SubjectId && t.Modality == "IVUS"))
{
#region ivus 自动创建非dicom检查
var addList = await _dicomStudyRepository.Where(t => t.SubjectId == inQuery.SubjectId)
.Select(t => new NoneDicomStudyAddOrEdit()
{
TrialId = t.TrialId,
SubjectId = t.SubjectId,
SubjectVisitId = t.SubjectVisitId,
ImageDate = (DateTime)t.StudyTime,
BodyPart = t.BodyPartForEdit,
BodyPartForEditOther = t.BodyPartForEditOther,
Modality = "IVUS"
}).ToListAsync();
var @lock = _distributedLockProvider.CreateLock($"NoneDicomCode");
using (await @lock.AcquireAsync())
{
var trialId = addList.FirstOrDefault().TrialId;
//默认会是0
var code = await _noneDicomStudyReposiotry.Where(t => t.TrialId == trialId).Select(x => x.Code).DefaultIfEmpty().MaxAsync();
foreach (var g in addList.GroupBy(t => t.SubjectVisitId))
{
var addOrEditNoneDicomStudy = g.First();
var optEntity = await _noneDicomStudyReposiotry.InsertFromDTOAsync(addOrEditNoneDicomStudy);
optEntity.Code = code + 1;
optEntity.StudyCode = AppSettings.GetCodeStr(optEntity.Code, nameof(NoneDicomStudy));
code++;
}
await _noneDicomStudyReposiotry.SaveChangesAsync();
}
#endregion
}
var list = _noneDicomStudyReposiotry.Where(t => t.SubjectId == subjectId) var list = _noneDicomStudyReposiotry.Where(t => t.SubjectId == subjectId)
.WhereIf(inQuery.SubjectVisitId != null, t => t.SubjectVisitId == inQuery.SubjectVisitId) .WhereIf(inQuery.SubjectVisitId != null, t => t.SubjectVisitId == inQuery.SubjectVisitId)
//.WhereIf(info.IsImageFilter, t => ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|")) //.WhereIf(info.IsImageFilter, t => ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|"))
@ -1367,8 +1422,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
{ {
var subjectVisitIdList = list.Select(t => t.SourceSubjectVisitId).Distinct().ToList(); var subjectVisitIdList = list.Select(t => t.SourceSubjectVisitId).Distinct().ToList();
var preDicomStudyList = _subjectVisitRepository.Where(t => subjectVisitIdList.Contains(t.Id)).SelectMany(t => t.TaskStudyList) //var preDicomStudyList = _subjectVisitRepository.Where(t => subjectVisitIdList.Contains(t.Id)).SelectMany(t => t.TaskStudyList)
.ProjectTo<DicomStudyBasicInfo>(_mapper.ConfigurationProvider).ToList(); // .ProjectTo<DicomStudyBasicInfo>(_mapper.ConfigurationProvider).ToList();
var preNoneDicomStudyList = _subjectVisitRepository.Where(t => subjectVisitIdList.Contains(t.Id)) var preNoneDicomStudyList = _subjectVisitRepository.Where(t => subjectVisitIdList.Contains(t.Id))
.SelectMany(t => t.NoneDicomStudyList) .SelectMany(t => t.NoneDicomStudyList)
@ -1378,7 +1433,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
{ {
var dicomList = item.DicomStudyList.Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "OCT" : true).ToList(); var dicomList = item.DicomStudyList.Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "OCT" : true).ToList();
dicomList.AddRange(preDicomStudyList.Where(t => t.SubjectVisitId == item.SourceSubjectVisitId).ToList()); //dicomList.AddRange(preDicomStudyList.Where(t => t.SubjectVisitId == item.SourceSubjectVisitId).ToList());
item.DicomStudyList = dicomList; item.DicomStudyList = dicomList;
@ -1475,7 +1530,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
{ {
var dirInfolist = _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => subjectVisitIdList.Contains(t.Id))).SelectMany(t => t.StudyList) var dirInfolist = _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => subjectVisitIdList.Contains(t.Id))).SelectMany(t => t.StudyList)
.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false) .Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false)
.Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true) .Where(t => info.IsImageFilter && inQuery.IsImageSegmentLabel == null ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true)
.Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "OCT" : true) .Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "OCT" : true)
.SelectMany(t => t.InstanceList.Where(t => t.IsReading && t.DicomSerie.IsReading)) .SelectMany(t => t.InstanceList.Where(t => t.IsReading && t.DicomSerie.IsReading))
.Select(t => new StudyDIRInfo() .Select(t => new StudyDIRInfo()
@ -1602,7 +1657,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
VisitName = sv.VisitName, VisitName = sv.VisitName,
TaskBlindName = leftVisitTask.TaskBlindName, TaskBlindName = leftVisitTask.TaskBlindName,
StudyList = sv.StudyList.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false) StudyList = sv.StudyList.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false)
.Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true) .Where(t => info.IsImageFilter && inQuery.IsImageSegmentLabel == null ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true)
.Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "OCT" : true) .Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "OCT" : true)
.Select(u => new DownloadDicomStudyDto() .Select(u => new DownloadDicomStudyDto()
{ {
@ -1627,35 +1682,35 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
}).ToList() }).ToList()
}).ToList(), }).ToList(),
TaskStudyList = //TaskStudyList =
sv.TaskStudyList.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false) //sv.TaskStudyList.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false)
//.Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true) ////.Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true)
.Select(u => new DownloadDicomStudyDto() //.Select(u => new DownloadDicomStudyDto()
{ //{
PatientId = u.PatientId, // PatientId = u.PatientId,
StudyTime = u.StudyTime, // StudyTime = u.StudyTime,
StudyCode = u.StudyCode, // StudyCode = u.StudyCode,
StudyInstanceUid = u.StudyInstanceUid, // StudyInstanceUid = u.StudyInstanceUid,
StudyDIRPath = u.StudyDIRPath, // StudyDIRPath = u.StudyDIRPath,
SeriesList = u.SeriesList.Select(z => new DownloadDicomSeriesDto() // SeriesList = u.SeriesList.Select(z => new DownloadDicomSeriesDto()
{ // {
Modality = z.Modality, // Modality = z.Modality,
InstanceList = z.InstanceList.Select(k => new DownloadDicomInstanceDto() // InstanceList = z.InstanceList.Select(k => new DownloadDicomInstanceDto()
{ // {
IsEncapsulated = k.IsEncapsulated, // IsEncapsulated = k.IsEncapsulated,
InstanceId = k.Id, // InstanceId = k.Id,
FileName = string.Empty, // FileName = string.Empty,
Path = k.Path, // Path = k.Path,
FileSize = k.FileSize // FileSize = k.FileSize
}).ToList() // }).ToList()
}).ToList() // }).ToList()
}).ToList() //}).ToList()
, //,
NoneDicomStudyList = inQuery.IsImageSegmentLabel != false ? sv.NoneDicomStudyList.Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false) NoneDicomStudyList = inQuery.IsImageSegmentLabel != false ? sv.NoneDicomStudyList.Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false)
.Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true) .Where(t => info.IsImageFilter && inQuery.IsImageSegmentLabel == null ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true)
.Where(t => t.IsReading) .Where(t => t.IsReading)
.Select(nd => new DownloadNoneDicomStudyDto() .Select(nd => new DownloadNoneDicomStudyDto()
{ {
@ -1699,7 +1754,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
//靶段标注处理 //靶段标注处理
if (inQuery.IsImageSegmentLabel == false) if (inQuery.IsImageSegmentLabel == false)
{ {
result.StudyList.AddRange(result.TaskStudyList); //result.StudyList.AddRange(result.TaskStudyList);
} }
foreach (var item in result.StudyList.SelectMany(t => t.SeriesList).SelectMany(t => t.InstanceList)) foreach (var item in result.StudyList.SelectMany(t => t.SeriesList).SelectMany(t => t.InstanceList))

View File

@ -3,6 +3,7 @@
// 生成时间 2021-12-06 10:54:55 // 生成时间 2021-12-06 10:54:55
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//-------------------------------------------------------------------- //--------------------------------------------------------------------
using DocumentFormat.OpenXml.EMMA;
using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Filter;
using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Models;
@ -96,8 +97,16 @@ namespace IRaCIS.Core.Application.Contracts
} }
var isFilterIVUSNoneDicom = false;
if (_subjectVisitRepository.Where(t => t.Id == subjectVisitId).SelectMany(t => t.Trial.TrialReadingCriterionList)
.Where(t => t.CriterionType == CriterionType.IVUS || t.CriterionType == CriterionType.OCT).Distinct().Count() == 2
)
{
isFilterIVUSNoneDicom = true;
}
var list = await noneDicomStudyQueryable.OrderBy(x => x.ImageDate).ThenBy(x => x.CreateTime).ToListAsync(); var list = await noneDicomStudyQueryable.Where(t => isFilterIVUSNoneDicom ? t.Modality != "IVUS" : true)
.OrderBy(x => x.ImageDate).ThenBy(x => x.CreateTime).ToListAsync();
var config = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => new { t.Trial.ImageFormatList, t.Trial.StudyNameList, t.Trial.IsShowStudyName, AuditState = qcAuditState }).FirstOrDefaultAsync(); var config = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => new { t.Trial.ImageFormatList, t.Trial.StudyNameList, t.Trial.IsShowStudyName, AuditState = qcAuditState }).FirstOrDefaultAsync();
return ResponseOutput.Ok(list, config); return ResponseOutput.Ok(list, config);

View File

@ -305,18 +305,18 @@ namespace IRaCIS.Core.Application.Services
//预览靶段标注上传的影像 //预览靶段标注上传的影像
if (isImageSegmentLabel == true && isVisitTask) if (isImageSegmentLabel == true && isVisitTask)
{ {
var taskStudyList = await _taskStudyRepository.Where(t => t.SubjectVisitId == sujectVisitId) //var taskStudyList = await _taskStudyRepository.Where(t => t.SubjectVisitId == sujectVisitId)
.WhereIf(isImageFilter, t => ("|" + criterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|")) // .WhereIf(isImageFilter, t => ("|" + criterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|"))
.ProjectTo<VisitStudyDTO>(_mapper.ConfigurationProvider).ToListAsync(); // .ProjectTo<VisitStudyDTO>(_mapper.ConfigurationProvider).ToListAsync();
foreach (var study in taskStudyList) //foreach (var study in taskStudyList)
{ //{
study.SeriesList = study.SeriesList.OrderBy(s => s.SeriesNumber).ThenBy(s => s.SeriesTime).ToList(); // study.SeriesList = study.SeriesList.OrderBy(s => s.SeriesNumber).ThenBy(s => s.SeriesTime).ToList();
study.InstanceCount = study.SeriesList.SelectMany(t => t.InstanceInfoList).Count(); // study.InstanceCount = study.SeriesList.SelectMany(t => t.InstanceInfoList).Count();
} //}
studyList.AddRange(taskStudyList); //studyList.AddRange(taskStudyList);
} }
@ -515,7 +515,7 @@ namespace IRaCIS.Core.Application.Services
//是否有了后处理的NoneDicom检查 //是否有了后处理的NoneDicom检查
IsHaveTaskNoneDicomStudyFile = t.SourceSubjectVisit.NoneDicomStudyList.SelectMany(c => c.TaskNoneDicomFileList.Where(t => t.VisitTaskId == indto.VisitTaskId)).Any(), IsHaveTaskNoneDicomStudyFile = t.SourceSubjectVisit.NoneDicomStudyList.SelectMany(c => c.TaskNoneDicomFileList.Where(t => t.VisitTaskId == indto.VisitTaskId)).Any(),
//是否有了标注的dicom检查 //是否有了标注的dicom检查
IsMarkDicomStudy = t.SourceSubjectVisit.TaskStudyList.Any(), //IsMarkDicomStudy = t.SourceSubjectVisit.TaskStudyList.Any(),
//是否有了标注的NoneDicom检查 //是否有了标注的NoneDicom检查
IsMarkNoneDicomStudy = t.SourceSubjectVisit.NoneDicomStudyList.SelectMany(c => c.ImageLabelNoneDicomFileList).Any() IsMarkNoneDicomStudy = t.SourceSubjectVisit.NoneDicomStudyList.SelectMany(c => c.ImageLabelNoneDicomFileList).Any()
@ -533,19 +533,15 @@ namespace IRaCIS.Core.Application.Services
.WhereIf(taskInfo.IsImageFilter == true, t => ("|" + taskInfo.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|")) .WhereIf(taskInfo.IsImageFilter == true, t => ("|" + taskInfo.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|"))
.WhereIf(isManualGenerate, t => t.SubjectCriteriaEvaluationVisitStudyFilterList.Any(t => t.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && t.IsConfirmed && t.IsReading)) .WhereIf(isManualGenerate, t => t.SubjectCriteriaEvaluationVisitStudyFilterList.Any(t => t.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && t.IsConfirmed && t.IsReading))
//影像后处理 上传了新的影像 还要原始dsa //影像后处理 上传了新的影像 还要原始dsa
.WhereIf(taskInfo.IsHaveTaskStudy .WhereIf(taskInfo.IsHaveTaskStudy && taskInfo.CriterionType == CriterionType.OCT,
&& (taskInfo.CriterionType == CriterionType.OCT || taskInfo.CriterionType == CriterionType.IVUS),
t => t.ModalityForEdit == "XA") t => t.ModalityForEdit == "XA")
.WhereIf(taskInfo.IsHaveTaskStudy == false && taskInfo.IsMarkDicomStudy && taskInfo.CriterionType == CriterionType.IVUS, .WhereIf(taskInfo.CriterionType == CriterionType.IVUS,
t => t.ModalityForEdit == "XA" ) t => t.ModalityForEdit == "XA" || t.ModalityForEdit == "IVUS")
.WhereIf(taskInfo.IsHaveTaskStudy == false && taskInfo.IsMarkDicomStudy && taskInfo.CriterionType == CriterionType.OCT, .WhereIf(taskInfo.IsHaveTaskStudy == false && taskInfo.CriterionType == CriterionType.OCT,
t => t.ModalityForEdit == "XA" || t.ModalityForEdit == "OCT") t => t.ModalityForEdit == "XA" || t.ModalityForEdit == "OCT")
.WhereIf(taskInfo.IsHaveTaskStudy == false && taskInfo.IsMarkDicomStudy == false
&& (taskInfo.CriterionType == CriterionType.OCT || taskInfo.CriterionType == CriterionType.IVUS),
t => t.ModalityForEdit == "XA" || t.ModalityForEdit == "OCT" || t.ModalityForEdit == "IVUS")
//其他 不应该看原始影像 //其他 不应该看原始影像
.WhereIf(taskInfo.IsHaveTaskStudy && (taskInfo.CriterionType != CriterionType.OCT && taskInfo.CriterionType != CriterionType.IVUS), t => false) .WhereIf(taskInfo.IsHaveTaskStudy && (taskInfo.CriterionType != CriterionType.OCT && taskInfo.CriterionType != CriterionType.IVUS), t => false)
@ -611,12 +607,12 @@ namespace IRaCIS.Core.Application.Services
} }
//影像后处理 上传了新的影像 //影像后处理 上传了新的影像
if (taskInfo.IsHaveTaskStudy || taskInfo.IsMarkDicomStudy || taskInfo.IsMarkNoneDicomStudy) if (taskInfo.IsHaveTaskStudy /*|| taskInfo.IsMarkDicomStudy*/ || taskInfo.IsMarkNoneDicomStudy)
{ {
var taskStudyList = await _taskStudyRepository.Where(t => t.TrialId == indto.TrialId) var taskStudyList = await _taskStudyRepository.Where(t => t.TrialId == indto.TrialId)
.WhereIf(taskInfo.IsHaveTaskStudy, t => t.VisitTaskId == indto.VisitTaskId) .WhereIf(taskInfo.IsHaveTaskStudy, t => t.VisitTaskId == indto.VisitTaskId)
.WhereIf(taskInfo.IsHaveTaskStudy == false && (taskInfo.IsMarkDicomStudy || taskInfo.IsMarkNoneDicomStudy), t => t.SubjectVisitId == indto.SujectVisitId) .WhereIf(taskInfo.IsHaveTaskStudy == false && (/*taskInfo.IsMarkDicomStudy ||*/ taskInfo.IsMarkNoneDicomStudy), t => t.SubjectVisitId == indto.SujectVisitId)
.WhereIf(taskInfo.IsImageFilter == true, t => ("|" + taskInfo.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|")) .WhereIf(taskInfo.IsImageFilter == true, t => ("|" + taskInfo.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|"))
.ProjectTo<VisitStudyDTO>(_mapper.ConfigurationProvider).ToListAsync(); .ProjectTo<VisitStudyDTO>(_mapper.ConfigurationProvider).ToListAsync();

View File

@ -2444,8 +2444,10 @@ namespace IRaCIS.Core.Domain.Share
/// </summary> /// </summary>
LumenAreaMeasurement = 1030, LumenAreaMeasurement = 1030,
/// <summary>
/// 斑块到血管开口的距离
/// </summary>
PlaqueToOstiumDistance=1031,
/// <summary> /// <summary>
/// 第一次测量 /// 第一次测量