Merge branch 'Test.Study' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test.Study
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
4983def85b
|
@ -4521,6 +4521,11 @@
|
|||
是否是第一次转化的任务
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetRelatedVisitTaskOutDto.IsExistsClinicalData">
|
||||
<summary>
|
||||
是否存在临床数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetGlobalReadingInfoInDto.UsingOriginalData">
|
||||
<summary>
|
||||
当新答案为空的时候 是否是有原数据
|
||||
|
|
|
@ -227,7 +227,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
public async Task<IResponseOutput<PageOutput<PIReaingTaskView>>> GetPIReadingAuditList(VisitTaskQuery queryVisitTask)
|
||||
{
|
||||
|
||||
CriterionType? criterionType = _trialReadingCriterionRepository.Where(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t=>t.CriterionType).FirstOrDefault();
|
||||
//CriterionType? criterionType = _trialReadingCriterionRepository.Where(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t=>t.CriterionType).FirstOrDefault();
|
||||
|
||||
var visitTaskQueryable = GetReadingTaskQueryable(queryVisitTask)
|
||||
.ProjectTo<PIReaingTaskView>(_mapper.ConfigurationProvider);
|
||||
|
@ -239,9 +239,9 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
var trialTaskConfig = _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo<TrialUrgentConfig>(_mapper.ConfigurationProvider).FirstOrDefault();
|
||||
|
||||
var questionList = _readingQuestionTrialRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.ReadingQuestionCriterionTrialId == queryVisitTask.TrialReadingCriterionId)
|
||||
//.Where(t => t.IsJudgeQuestion == true)
|
||||
.WhereIf(criterionType!=null&& criterionType!=CriterionType.SelfDefine,t=>t.IsJudgeQuestion==true)
|
||||
.WhereIf(criterionType != null && criterionType == CriterionType.SelfDefine, t => t.AssessmentResultEnum == AssessmentResultType.AssessmentResult)
|
||||
.Where(t => t.IsJudgeQuestion == true)
|
||||
//.WhereIf(criterionType!=null&& criterionType!=CriterionType.SelfDefine,t=>t.IsJudgeQuestion==true)
|
||||
// .WhereIf(criterionType != null && criterionType == CriterionType.SelfDefine, t => t.AssessmentResultEnum == AssessmentResultType.AssessmentResult)
|
||||
.Select(t => new { QuestionId = t.Id, QuestionName = _userInfo.IsEn_Us ? t.QuestionEnName : t.QuestionName ,t.DictionaryCode}).ToList();
|
||||
|
||||
trialTaskConfig!.OtherObj = questionList;
|
||||
|
|
|
@ -84,7 +84,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
CreateMap<VisitTask, ReadingTaskView>().IncludeBase<VisitTask, VisitTaskView>()
|
||||
.ForMember(t=>t.PIReadingResultList,u=>u.MapFrom(c=>c.ReadingTaskQuestionAnswerList
|
||||
.Where(t=> t.ReadingQuestionCriterionTrial.CriterionType==CriterionType.SelfDefine? t.ReadingQuestionTrial.AssessmentResultEnum == AssessmentResultType.AssessmentResult: t.ReadingQuestionTrial.IsJudgeQuestion==true)
|
||||
.Where(t=> /*t.ReadingQuestionCriterionTrial.CriterionType==CriterionType.SelfDefine? t.ReadingQuestionTrial.AssessmentResultEnum == AssessmentResultType.AssessmentResult:*/ t.ReadingQuestionTrial.IsJudgeQuestion==true)
|
||||
.Select(d=>new PIReadingResult() { QuestionId= d.ReadingQuestionTrialId,Answer=d.Answer})));
|
||||
|
||||
CreateMap<VisitTask, PIReaingTaskView>().IncludeBase<VisitTask, ReadingTaskView>()
|
||||
|
|
|
@ -144,7 +144,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
await _internationalizationRepository.SaveChangesAsync();
|
||||
|
||||
|
||||
//清理缓存
|
||||
_provider.Set<List<InternationalizationSimpleDto>>(StaticData.InternationalData.Front, new List<InternationalizationSimpleDto>(), TimeSpan.FromDays(1));
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
|
@ -183,6 +184,9 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
}
|
||||
|
||||
//清理缓存
|
||||
_provider.Set<List<InternationalizationSimpleDto>>(StaticData.InternationalData.Front, new List<InternationalizationSimpleDto>(), TimeSpan.FromDays(1));
|
||||
|
||||
return ResponseOutput.Ok(entity.Id.ToString());
|
||||
|
||||
}
|
||||
|
@ -192,6 +196,9 @@ namespace IRaCIS.Core.Application.Service
|
|||
public async Task<IResponseOutput> DeleteInternationalization(Guid internationalizationId)
|
||||
{
|
||||
var success = await _internationalizationRepository.DeleteFromQueryAsync(t => t.Id == internationalizationId, true);
|
||||
|
||||
//清理缓存
|
||||
_provider.Set<List<InternationalizationSimpleDto>>(StaticData.InternationalData.Front, new List<InternationalizationSimpleDto>(), TimeSpan.FromDays(1));
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
|
|
|
@ -1322,13 +1322,14 @@ namespace IRaCIS.Core.Application.Service
|
|||
/// </summary>
|
||||
/// <param name="queryEmailNoticeConfig"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<PageOutput<TrialSelectEmailNoticeConfigView>> GetSysEmailNoticeConfigList(EmailNoticeConfigQuery queryEmailNoticeConfig)
|
||||
{
|
||||
var emailNoticeConfigQueryable = _emailNoticeConfigRepository
|
||||
.WhereIf(queryEmailNoticeConfig.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == queryEmailNoticeConfig.BusinessScenarioEnum)
|
||||
.WhereIf(queryEmailNoticeConfig.IsReturnRequired != null, t => t.IsReturnRequired == queryEmailNoticeConfig.IsReturnRequired)
|
||||
.WhereIf(queryEmailNoticeConfig.IsEnable != null, t => t.IsEnable == queryEmailNoticeConfig.IsEnable)
|
||||
|
||||
.WhereIf(queryEmailNoticeConfig.CriterionTypeEnum != null, t => t.CriterionTypeEnum == queryEmailNoticeConfig.CriterionTypeEnum)
|
||||
.ProjectTo<TrialSelectEmailNoticeConfigView>(_mapper.ConfigurationProvider, new { trialId = queryEmailNoticeConfig.TrialId });
|
||||
|
||||
return await emailNoticeConfigQueryable.ToPagedListAsync(queryEmailNoticeConfig.PageIndex, queryEmailNoticeConfig.PageSize, queryEmailNoticeConfig.SortField, queryEmailNoticeConfig.Asc);
|
||||
|
|
|
@ -190,23 +190,24 @@ namespace IRaCIS.Application.Services
|
|||
.WhereIf(inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
||||
.WhereIf(!inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
||||
.Where(x => x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
|
||||
.Include(x=>x.ClinicalDataTrialSet)
|
||||
.OrderBy(x=>x.ClinicalDataTrialSet.CreateTime)
|
||||
.Include(x => x.ClinicalDataTrialSet)
|
||||
.OrderBy(x => x.ClinicalDataTrialSet.CreateTime)
|
||||
.Select(x => new GetCRCClinicalDataOutDto()
|
||||
{
|
||||
Id = x.Id,
|
||||
ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us) ,
|
||||
ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
||||
ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
|
||||
ClinicalDataSetEnName=x.ClinicalDataTrialSet.ClinicalDataSetEnName,
|
||||
ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName,
|
||||
ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
|
||||
FileName = x.ClinicalDataTrialSet.FileName,
|
||||
UploadRole = x.ClinicalDataTrialSet.UploadRole,
|
||||
Path = x.ClinicalDataTrialSet.Path,
|
||||
IsBlind = x.IsBlind,
|
||||
IsComplete = x.IsComplete,
|
||||
ClinicalFromList=x.Subject.ClinicalFormList.Where(y=>y.ReadingId==x.ReadingId&&y.ClinicalDataTrialSetId==x.ClinicalDataTrialSetId).Select(y=> new ClinicalFromData() {
|
||||
CheckDate=y.CheckDate,
|
||||
ClinicalFormId=y.Id
|
||||
ClinicalFromList = x.Subject.ClinicalFormList.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
|
||||
{
|
||||
CheckDate = y.CheckDate,
|
||||
ClinicalFormId = y.Id
|
||||
}).ToList(),
|
||||
PDFFileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
||||
{
|
||||
|
@ -215,7 +216,7 @@ namespace IRaCIS.Application.Services
|
|||
Path = y.Path,
|
||||
CreateTime = y.CreateTime,
|
||||
}).ToList(),
|
||||
|
||||
|
||||
}).ToListAsync();
|
||||
|
||||
var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousHistoryView>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
|
@ -287,7 +288,7 @@ namespace IRaCIS.Application.Services
|
|||
//}
|
||||
|
||||
data.IsBlind = inDto.IsBlind;
|
||||
data.IsComplete=inDto.IsComplete;
|
||||
data.IsComplete = inDto.IsComplete;
|
||||
data.IsSign = true;
|
||||
data.ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned;
|
||||
|
||||
|
@ -304,7 +305,24 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
await this.iServiceProvider.GetService<IReadingImageTaskService>().AddOncologyTask(readingId);
|
||||
|
||||
await DealVisiTaskClinicalDataSignedAsync(data.TrialId, data.SubjectId, data.ReadingId, data.IsVisit, inDto.TrialReadingCriterionId);
|
||||
//如果先生成了任务,再签名subject级别 PM 临床数据,那么会导致其他标准的任务签名状态无法得到维护
|
||||
|
||||
if (await _repository.AnyAsync<ClinicalDataTrialSet>(t => t.Id == data.ClinicalDataTrialSetId && t.UploadRole == UploadRole.PM && t.ClinicalDataLevel == ClinicalLevel.Subject))
|
||||
{
|
||||
var needDealTrialReadingCriterionIdList = _repository.Where<ClinicalDataTrialSet>(t => t.Id == data.ClinicalDataTrialSetId)
|
||||
.SelectMany(t => t.TrialClinicalDataSetCriteriaList)
|
||||
.Select(u => u.TrialReadingCriterionId).Distinct().ToList();
|
||||
|
||||
foreach (var trialReadingCriterionId in needDealTrialReadingCriterionIdList)
|
||||
{
|
||||
await DealVisiTaskClinicalDataSignedAsync(data.TrialId, data.SubjectId, data.ReadingId, data.IsVisit, trialReadingCriterionId);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
await DealVisiTaskClinicalDataSignedAsync(data.TrialId, data.SubjectId, data.ReadingId, data.IsVisit, inDto.TrialReadingCriterionId);
|
||||
|
||||
}
|
||||
|
||||
return ResponseOutput.Result(result);
|
||||
}
|
||||
|
@ -313,7 +331,7 @@ namespace IRaCIS.Application.Services
|
|||
public async Task DealVisiTaskClinicalDataSignedAsync(Guid trialId, Guid subjectId, Guid readingId, bool isVisit, Guid trialReadingCritrialId)
|
||||
{
|
||||
//获取确认的临床数据配置
|
||||
var trialClinicalDataSetList = _clinicalDataTrialSetRepository.Where(t => t.TrialId == trialId && t.IsConfirm).Include(t => t.TrialClinicalDataSetCriteriaList).ToList();
|
||||
var trialClinicalDataSetList = _clinicalDataTrialSetRepository.Where(t => t.TrialId == trialId && t.IsConfirm).Include(t => t.TrialClinicalDataSetCriteriaList).ToList();
|
||||
|
||||
//var criterionType = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == trialReadingCritrialId).Select(t => t.CriterionType).FirstOrDefaultAsync();
|
||||
|
||||
|
@ -328,7 +346,7 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
var isBaseLine = await _subjectVisitRepository.Where(t => t.Id == readingId).Select(t => t.IsBaseLine).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
|
||||
|
||||
//判断是否基线
|
||||
if (isBaseLine)
|
||||
|
@ -414,7 +432,7 @@ namespace IRaCIS.Application.Services
|
|||
}
|
||||
|
||||
//有序阅片才维护 IsFrontTaskNeedSignButNotSign 这个状态
|
||||
if (_readingQuestionCriterionTrialRepository.Any(t=>t.Id==trialReadingCritrialId && t.IsReadingTaskViewInOrder == true))
|
||||
if (_readingQuestionCriterionTrialRepository.Any(t => t.Id == trialReadingCritrialId && t.IsReadingTaskViewInOrder == true))
|
||||
{
|
||||
|
||||
|
||||
|
@ -429,8 +447,8 @@ namespace IRaCIS.Application.Services
|
|||
(t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum)
|
||||
|
||||
// 前序存在 未一致性核查未通过的
|
||||
|| t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum>sv.VisitNum)
|
||||
|
||||
|| t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum)
|
||||
|
||||
))
|
||||
.Select(t => t.Id);
|
||||
|
||||
|
@ -442,7 +460,7 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
|
||||
var visitTaskIdQueryable2 = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
|
||||
|
||||
|
||||
.Where(t => t.IsFrontTaskNeedSignButNotSign == true &&
|
||||
|
||||
//前序任务 不存在需要签名 但是没签名
|
||||
|
@ -461,14 +479,14 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 废弃 接口合并到签名哪里
|
||||
|
||||
|
||||
[HttpPut]
|
||||
public async Task<IResponseOutput> PMClinicalDataConfirm(PMClinicalDataConfirmCommand command)
|
||||
{
|
||||
|
@ -522,7 +540,7 @@ namespace IRaCIS.Application.Services
|
|||
keyValuePairs.Add(ModuleTypeEnum.Oncology, ClinicalLevel.OncologyRead);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var usedIdsQuery = _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.ReadingId && x.Id != inDto.ReadingClinicalDataId).Select(x => x.ClinicalDataTrialSetId);
|
||||
|
@ -537,20 +555,20 @@ namespace IRaCIS.Application.Services
|
|||
.WhereIf(inDto.IsVisit && !inDto.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
||||
.WhereIf(!inDto.IsVisit, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
|
||||
.WhereIf(readModule != null, x => x.ClinicalDataLevel == keyValuePairs[readModule!.ModuleType])
|
||||
.WhereIf(inDto.TrialReadingCriterionId!=null,x=>x.TrialClinicalDataSetCriteriaList.Any(y=>y.TrialReadingCriterionId== inDto.TrialReadingCriterionId))
|
||||
.WhereIf(inDto.TrialReadingCriterionId != null, x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == inDto.TrialReadingCriterionId))
|
||||
//.WhereIf(criterion!=null,x=>x.CriterionEnumListStr.Contains($"|{(int)criterion.CriterionType}|"))
|
||||
.Select(x => new GetTrialClinicalDataSelectOutDto()
|
||||
{
|
||||
ClinicalDataLevel = x.ClinicalDataLevel,
|
||||
ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
||||
ClinicalDataSetEnName=x.ClinicalDataSetEnName,
|
||||
ClinicalDataSetEnName = x.ClinicalDataSetEnName,
|
||||
ClinicalUploadType = x.ClinicalUploadType,
|
||||
FileName = x.FileName,
|
||||
Path = x.Path,
|
||||
Id = x.Id,
|
||||
CriterionEnumList = x.CriterionEnumList,
|
||||
}).ToListAsync();
|
||||
|
||||
|
||||
return clinicalList;
|
||||
}
|
||||
|
||||
|
@ -699,20 +717,21 @@ namespace IRaCIS.Application.Services
|
|||
Path = y.Path,
|
||||
CreateTime = y.CreateTime,
|
||||
}).ToList(),
|
||||
|
||||
|
||||
});
|
||||
|
||||
var result = new List<GetReadingClinicalDataListOutDto>();
|
||||
if (!inDto.IsOnlyGetCRCReadModule)
|
||||
{
|
||||
result = await resultQuery.ToListAsync();
|
||||
result = await resultQuery.ToListAsync();
|
||||
}
|
||||
|
||||
var readingIds = result.Select(x => x.ReadingId).ToList();
|
||||
var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId??default(Guid))).ToListAsync();
|
||||
result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x => {
|
||||
var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId ?? default(Guid))).ToListAsync();
|
||||
result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x =>
|
||||
{
|
||||
|
||||
x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId&&y.ClinicalDataTrialSetId==x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
|
||||
x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
|
||||
{
|
||||
CheckDate = y.CheckDate,
|
||||
ClinicalFormId = y.Id
|
||||
|
@ -723,35 +742,36 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
// 这里处理CRC上传 阅片期的临床数据
|
||||
var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId)
|
||||
.WhereIf(inDto.SelectIsSign,x=>x.IsPMConfirm)
|
||||
.WhereIf(!inDto.SelectIsSign, x => x.IsCRCConfirm)
|
||||
.FirstOrDefaultAsync();
|
||||
.WhereIf(inDto.SelectIsSign, x => x.IsPMConfirm)
|
||||
.WhereIf(!inDto.SelectIsSign, x => x.IsCRCConfirm)
|
||||
.FirstOrDefaultAsync();
|
||||
if (readModule != null)
|
||||
{
|
||||
var moduleCriterionFromList = await _readModuleCriterionFromRepository
|
||||
.WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId)
|
||||
.Where(x => x.ReadModuleId == readModule.Id).Select(x => new{
|
||||
ClinicalFormId= x.ClinicalFormId,
|
||||
CheckDate= x.ClinicalForm.CheckDate,
|
||||
ClinicalDataTrialSetId= x.ClinicalForm.ClinicalDataTrialSetId
|
||||
|
||||
|
||||
}).ToListAsync();
|
||||
.Where(x => x.ReadModuleId == readModule.Id).Select(x => new
|
||||
{
|
||||
ClinicalFormId = x.ClinicalFormId,
|
||||
CheckDate = x.ClinicalForm.CheckDate,
|
||||
ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId
|
||||
|
||||
|
||||
}).ToListAsync();
|
||||
|
||||
|
||||
var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.Structuring)
|
||||
.WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead)
|
||||
.WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
|
||||
.Where(x=>x.TrialClinicalDataSetCriteriaList.Any(y=>y.TrialReadingCriterionId==readModule.TrialReadingCriterionId))
|
||||
.Where(x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == readModule.TrialReadingCriterionId))
|
||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
||||
{
|
||||
|
||||
ClinicalDataLevel = x.ClinicalDataLevel,
|
||||
SubjectId = inDto.SubjectId,
|
||||
ReadingId = default(Guid),
|
||||
IsCRCApplicationRevoke=readModule.IsCRCApplicationRevoke,
|
||||
IsCRCConfirm= readModule.IsCRCConfirm,
|
||||
IsPMConfirm= readModule.IsPMConfirm,
|
||||
IsCRCApplicationRevoke = readModule.IsCRCApplicationRevoke,
|
||||
IsCRCConfirm = readModule.IsCRCConfirm,
|
||||
IsPMConfirm = readModule.IsPMConfirm,
|
||||
ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
||||
ClinicalDataSetEnName = x.ClinicalDataSetEnName,
|
||||
ClinicalDataTrialSetId = x.Id,
|
||||
|
@ -762,7 +782,7 @@ namespace IRaCIS.Application.Services
|
|||
IsCRCUpload = x.UploadRole == UploadRole.CRC,
|
||||
IsNeedMerge = true,
|
||||
ReadModuleId = readModule.Id,
|
||||
TrialClinicalDataSetCriteriaList=x.TrialClinicalDataSetCriteriaList,
|
||||
TrialClinicalDataSetCriteriaList = x.TrialClinicalDataSetCriteriaList,
|
||||
//FileCount = x.FileCount,
|
||||
|
||||
//ReadingClinicalDataState = x.ReadingClinicalDataState,
|
||||
|
@ -791,8 +811,8 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
});
|
||||
|
||||
result.AddRange(clinicalresult);
|
||||
}
|
||||
result.AddRange(clinicalresult);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -813,7 +833,7 @@ namespace IRaCIS.Application.Services
|
|||
result = result.Where(x => x.UploadRole == UploadRole.PM).ToList();
|
||||
break;
|
||||
case GetClinicalType.CRCConfirm:
|
||||
result = result.Where(x => x.UploadRole == UploadRole.CRC&&x.IsCRCConfirm&&!x.IsPMConfirm).ToList();
|
||||
result = result.Where(x => x.UploadRole == UploadRole.CRC && x.IsCRCConfirm && !x.IsPMConfirm).ToList();
|
||||
break;
|
||||
case GetClinicalType.HasSign:
|
||||
result = result.Where(x => x.IsSign).ToList();
|
||||
|
@ -849,15 +869,15 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId)
|
||||
.Where(x => x.ReadingId == inDto.ReadingId)
|
||||
.WhereIf(inDto.ClinicalDataTrialSetId!=null, x=>x.ClinicalDataTrialSetId==inDto.TrialReadingCriterionId)
|
||||
.Where(x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t=>t.TrialReadingCriterionId==inDto.TrialReadingCriterionId))
|
||||
.WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.TrialReadingCriterionId)
|
||||
.Where(x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId))
|
||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
||||
{
|
||||
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
||||
SubjectId = x.SubjectId,
|
||||
ReadingId = x.ReadingId,
|
||||
ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
||||
ClinicalDataSetEnName =x.ClinicalDataTrialSet.ClinicalDataSetEnName,
|
||||
ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName,
|
||||
ClinicalDataTrialSetId = x.ClinicalDataTrialSetId,
|
||||
IsSign = x.IsSign,
|
||||
ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
|
||||
|
@ -884,7 +904,8 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
var readingIds = result.Select(x => x.ReadingId).ToList();
|
||||
var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId ?? default(Guid))).ToListAsync();
|
||||
result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x => {
|
||||
result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x =>
|
||||
{
|
||||
|
||||
x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
|
||||
{
|
||||
|
@ -895,77 +916,78 @@ namespace IRaCIS.Application.Services
|
|||
});
|
||||
|
||||
// 这里处理CRC上传 阅片期的临床数据
|
||||
var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId&&x.IsCRCConfirm)
|
||||
var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId && x.IsCRCConfirm)
|
||||
.FirstOrDefaultAsync();
|
||||
if (readModule != null)
|
||||
{
|
||||
var moduleCriterionFromList = await _readModuleCriterionFromRepository.Where(x => x.ReadModuleId == readModule.Id)
|
||||
var moduleCriterionFromList = await _readModuleCriterionFromRepository.Where(x => x.ReadModuleId == readModule.Id)
|
||||
|
||||
.WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.TrialReadingCriterionId)
|
||||
.Select(x => new {
|
||||
ClinicalFormId = x.ClinicalFormId,
|
||||
CheckDate = x.ClinicalForm.CheckDate,
|
||||
ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId
|
||||
.Select(x => new
|
||||
{
|
||||
ClinicalFormId = x.ClinicalFormId,
|
||||
CheckDate = x.ClinicalForm.CheckDate,
|
||||
ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId
|
||||
|
||||
|
||||
}).ToListAsync();
|
||||
}).ToListAsync();
|
||||
|
||||
|
||||
var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC&&x.ClinicalUploadType== ClinicalUploadType.Structuring)
|
||||
.WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading,x=>x.ClinicalDataLevel== ClinicalLevel.ImageRead)
|
||||
|
||||
var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.Structuring)
|
||||
.WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead)
|
||||
.WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
|
||||
.Where(x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == readModule.TrialReadingCriterionId))
|
||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
||||
{
|
||||
{
|
||||
|
||||
ClinicalDataLevel = x.ClinicalDataLevel,
|
||||
SubjectId = inDto.SubjectId,
|
||||
ReadingId = default(Guid),
|
||||
IsCRCApplicationRevoke= readModule.IsCRCApplicationRevoke,
|
||||
ClinicalDataLevel = x.ClinicalDataLevel,
|
||||
SubjectId = inDto.SubjectId,
|
||||
ReadingId = default(Guid),
|
||||
IsCRCApplicationRevoke = readModule.IsCRCApplicationRevoke,
|
||||
IsCRCConfirm = readModule.IsCRCConfirm,
|
||||
IsPMConfirm=readModule.IsPMConfirm,
|
||||
IsPMConfirm = readModule.IsPMConfirm,
|
||||
|
||||
ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
||||
ClinicalDataSetEnName = x.ClinicalDataSetEnName,
|
||||
ClinicalDataTrialSetId = x.Id,
|
||||
IsSign = readModule.IsPMConfirm,
|
||||
ClinicalUploadType = x.ClinicalUploadType,
|
||||
Id = default(Guid),
|
||||
UploadRole = x.UploadRole,
|
||||
IsCRCUpload = x.UploadRole == UploadRole.CRC,
|
||||
IsNeedMerge = true,
|
||||
ReadModuleId = readModule.Id,
|
||||
//FileCount = x.FileCount,
|
||||
ClinicalDataSetEnName = x.ClinicalDataSetEnName,
|
||||
ClinicalDataTrialSetId = x.Id,
|
||||
IsSign = readModule.IsPMConfirm,
|
||||
ClinicalUploadType = x.ClinicalUploadType,
|
||||
Id = default(Guid),
|
||||
UploadRole = x.UploadRole,
|
||||
IsCRCUpload = x.UploadRole == UploadRole.CRC,
|
||||
IsNeedMerge = true,
|
||||
ReadModuleId = readModule.Id,
|
||||
//FileCount = x.FileCount,
|
||||
|
||||
//ReadingClinicalDataState = x.ReadingClinicalDataState,
|
||||
//ReadingClinicalDataState = x.ReadingClinicalDataState,
|
||||
|
||||
//FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
||||
//{
|
||||
// Id = y.Id,
|
||||
// FileName = y.FileName,
|
||||
// Path = y.Path,
|
||||
// CreateTime = y.CreateTime,
|
||||
//}).ToList()
|
||||
//FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
||||
//{
|
||||
// Id = y.Id,
|
||||
// FileName = y.FileName,
|
||||
// Path = y.Path,
|
||||
// CreateTime = y.CreateTime,
|
||||
//}).ToList()
|
||||
|
||||
}).ToListAsync();
|
||||
}).ToListAsync();
|
||||
|
||||
clinicalresult.ForEach(x =>
|
||||
{
|
||||
x.FileCount = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Count();
|
||||
x.ClinicalFromList = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).OrderBy(y => y.CheckDate).Select(x => new ClinicalFromData
|
||||
{
|
||||
CheckDate = x.CheckDate,
|
||||
ClinicalFormId = x.ClinicalFormId
|
||||
clinicalresult.ForEach(x =>
|
||||
{
|
||||
x.FileCount = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Count();
|
||||
x.ClinicalFromList = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).OrderBy(y => y.CheckDate).Select(x => new ClinicalFromData
|
||||
{
|
||||
CheckDate = x.CheckDate,
|
||||
ClinicalFormId = x.ClinicalFormId
|
||||
|
||||
}).ToList();
|
||||
}).ToList();
|
||||
|
||||
x.IsSign = readModule.IsPMConfirm ?true : false;
|
||||
x.IsSign = readModule.IsPMConfirm ? true : false;
|
||||
x.ReadingClinicalDataState = readModule.IsPMConfirm ? ReadingClinicalDataStatus.HaveSigned : ReadingClinicalDataStatus.HaveChecked;
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
result.AddRange(clinicalresult);
|
||||
}
|
||||
result.AddRange(clinicalresult);
|
||||
}
|
||||
|
||||
|
||||
if (inDto.GetClinicalType != null)
|
||||
|
@ -976,7 +998,7 @@ namespace IRaCIS.Application.Services
|
|||
result = result.Where(x => x.UploadRole == UploadRole.PM).ToList();
|
||||
break;
|
||||
case GetClinicalType.CRCConfirm:
|
||||
result = result.Where(x => x.UploadRole == UploadRole.CRC&&x.IsCRCConfirm&&!x.IsPMConfirm).ToList();
|
||||
result = result.Where(x => x.UploadRole == UploadRole.CRC && x.IsCRCConfirm && !x.IsPMConfirm).ToList();
|
||||
break;
|
||||
case GetClinicalType.HasSign:
|
||||
result = result.Where(x => x.IsSign).ToList();
|
||||
|
@ -984,7 +1006,7 @@ namespace IRaCIS.Application.Services
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -1045,7 +1045,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public List<string> RelevanceValueList { get; set; }
|
||||
public List<CalculateInfo> CalculateQuestionList { get; set; }
|
||||
|
||||
public AssessmentResultType AssessmentResultEnum { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class ReadingQuestionSystemView
|
||||
|
@ -1986,7 +1986,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public List<string> ParentTriggerValueList { get; set; }
|
||||
public List<string> RelevanceValueList { get; set; }
|
||||
|
||||
public AssessmentResultType AssessmentResultEnum { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -268,7 +268,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
|
||||
|
||||
public AssessmentResultType AssessmentResultEnum { get; set; }
|
||||
//
|
||||
|
||||
[JsonIgnore]
|
||||
[ForeignKey("GroupId")]
|
||||
|
|
Loading…
Reference in New Issue