受试者随机随机排序修改
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
1d5c274e38
commit
f46bbea98e
|
@ -23,7 +23,10 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||
public interface IDownloadAndUploadService
|
||||
{
|
||||
Task PackageAndAnonymizImage(Guid trialId, Guid subjectVisitId, bool isDicom, bool isAnonymize = true);
|
||||
|
||||
Task<IResponseOutput> SubejctRandomReadingTaskNameDeal(Guid subjectId, Guid trialReadingCriterionId);
|
||||
}
|
||||
|
||||
[ApiExplorerSettings(GroupName = "Trial")]
|
||||
public class DownloadAndUploadService(
|
||||
IRepository<SystemAnonymization> _systemAnonymizationRepository,
|
||||
|
@ -77,7 +80,6 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||
&& t.ReadingTaskState != ReadingTaskState.HaveSigned && t.ReadingCategory == ReadingCategory.Visit && t.TaskBlindName != "Timepoint").Select(t => new { t.TaskBlindName, t.SourceSubjectVisitId, t.SouceReadModuleId }).ToListAsync();
|
||||
|
||||
|
||||
|
||||
//随机赋值编号 比如要处理5个任务,实例化一个包含1-5的数组,每次随机取出一个
|
||||
List<int> availableNumbers = Enumerable.Range(haveDealedTaskList.Count + haveFinishedTaskCount + 1, needDealTaskList.Count).ToList();
|
||||
Random rng = new Random();
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
using IRaCIS.Core.Application.Filter;
|
||||
using IRaCIS.Core.Application.Helper;
|
||||
using IRaCIS.Core.Application.Interfaces;
|
||||
using IRaCIS.Core.Application.Service.ImageAndDoc;
|
||||
using IRaCIS.Core.Application.Service.Reading.Dto;
|
||||
using IRaCIS.Core.Application.Service.ReadingCalculate.Interface;
|
||||
using IRaCIS.Core.Application.ViewModel;
|
||||
|
@ -44,24 +45,21 @@ namespace IRaCIS.Core.Application.Service
|
|||
IRepository<DicomInstance> _dicomInstanceRepository,
|
||||
IRepository<OrganInfo> _organInfoRepository,
|
||||
IRepository<TrialDocument> _trialDocumentRepository,
|
||||
IRepository<User> _userRepository,
|
||||
ILuganoCalculateService _luganoCalculateService,
|
||||
IRepository<ReadingCustomTag> _readingCustomTagRepository,
|
||||
IRepository<ReadingTaskQuestionMark> _readingTaskQuestionMarkRepository,
|
||||
IRepository<ReadingSystemCriterionDictionary> _readingCriterionDictionaryRepository,
|
||||
IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository,
|
||||
IRepository<TumorAssessment_RECIST1Point1> _tumorAssessmentRepository,
|
||||
IRepository<ReadingTableAnswerRowInfo> _readingTableAnswerRowInfoRepository,
|
||||
IRepository<ReadingTableQuestionSystem> _readingTableQuestionSystemRepository,
|
||||
IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository,
|
||||
IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository,
|
||||
IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository,
|
||||
IRepository<ReadingQuestionCriterionSystem> _readingQuestionCriterionSystemRepository,
|
||||
IRepository<ReadingQuestionSystem> _readingQuestionSystem,
|
||||
IRepository<NoneDicomStudyFile> _noneDicomStudyFileSystem,
|
||||
IGeneralCalculateService _generalCalculateService,
|
||||
IRepository<ReadingQuestionTrial> _readingQuestionTrialRepository,
|
||||
IRepository<TaskStudy> _taskStudyRepository,
|
||||
IDownloadAndUploadService _downloadAndUploadService,
|
||||
ITrialEmailNoticeConfigService _trialEmailNoticeConfigService) : BaseService, IReadingImageTaskService
|
||||
{
|
||||
|
||||
|
@ -2827,6 +2825,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
}
|
||||
else if (inDto.SubjectId != null && trialReadingCriterion.IsReadingTaskViewInOrder == ReadingOrder.SubjectRandom)
|
||||
{
|
||||
await _downloadAndUploadService.SubejctRandomReadingTaskNameDeal((Guid)inDto.SubjectId, (Guid)trialReadingCriterionId);
|
||||
|
||||
var subjectTaskList = (await _visitTaskService.GetSubjectReadingIQueryable(new GetReadingIQueryableInDto()
|
||||
{
|
||||
TrialId = inDto.TrialId,
|
||||
|
@ -2848,17 +2848,22 @@ namespace IRaCIS.Core.Application.Service
|
|||
// 排除跳过的
|
||||
List<Guid> remainingItems = taskList.Select(x => x.Id).Except(cacheSkipIds).ToList();
|
||||
|
||||
taskList = taskList.Where(x => remainingItems.Contains(x.Id)).ToList();
|
||||
//受试者随机固定排序
|
||||
taskList = taskList.Where(x => remainingItems.Contains(x.Id)).OrderBy(t=>t.TaskBlindName).ToList();
|
||||
|
||||
if (taskList.Count() == 0)
|
||||
{
|
||||
throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"], ApiResponseCodeEnum.CloseCurrentWindows);
|
||||
}
|
||||
|
||||
Random random = new Random();
|
||||
//返回的范围是 0- taskList.Count-1
|
||||
int randomIndex = random.Next(taskList.Count);
|
||||
#region 随机废弃
|
||||
//Random random = new Random();
|
||||
////返回的范围是 0- taskList.Count-1
|
||||
//int randomIndex = random.Next(taskList.Count);
|
||||
|
||||
var visitTaskId = taskList[randomIndex].Id;
|
||||
//var visitTaskId = taskList[randomIndex].Id;
|
||||
#endregion
|
||||
var visitTaskId = taskList[0].Id;
|
||||
|
||||
task = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Select(x => new GetReadingTaskDto()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue