uat-ivus-oct-再次修改5

Test_IRC_Net8
hang 2025-12-16 09:30:41 +08:00
parent db9895077c
commit 9204183add
2 changed files with 70 additions and 15 deletions

View File

@ -1764,22 +1764,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 + "|"))
@ -1655,7 +1710,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
//, //,
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 && inQuery.IsImageSegmentLabel==null ? ("|" + 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()
{ {