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

Uat_Study^2
he 2024-05-22 17:49:01 +08:00
commit 4983def85b
8 changed files with 143 additions and 108 deletions

View File

@ -4521,6 +4521,11 @@
是否是第一次转化的任务 是否是第一次转化的任务
</summary> </summary>
</member> </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"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetGlobalReadingInfoInDto.UsingOriginalData">
<summary> <summary>
当新答案为空的时候 是否是有原数据 当新答案为空的时候 是否是有原数据

View File

@ -227,7 +227,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
public async Task<IResponseOutput<PageOutput<PIReaingTaskView>>> GetPIReadingAuditList(VisitTaskQuery queryVisitTask) 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) var visitTaskQueryable = GetReadingTaskQueryable(queryVisitTask)
.ProjectTo<PIReaingTaskView>(_mapper.ConfigurationProvider); .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 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) var questionList = _readingQuestionTrialRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.ReadingQuestionCriterionTrialId == queryVisitTask.TrialReadingCriterionId)
//.Where(t => t.IsJudgeQuestion == true) .Where(t => t.IsJudgeQuestion == true)
.WhereIf(criterionType!=null&& criterionType!=CriterionType.SelfDefine,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) // .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(); .Select(t => new { QuestionId = t.Id, QuestionName = _userInfo.IsEn_Us ? t.QuestionEnName : t.QuestionName ,t.DictionaryCode}).ToList();
trialTaskConfig!.OtherObj = questionList; trialTaskConfig!.OtherObj = questionList;

View File

@ -84,7 +84,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap<VisitTask, ReadingTaskView>().IncludeBase<VisitTask, VisitTaskView>() CreateMap<VisitTask, ReadingTaskView>().IncludeBase<VisitTask, VisitTaskView>()
.ForMember(t=>t.PIReadingResultList,u=>u.MapFrom(c=>c.ReadingTaskQuestionAnswerList .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}))); .Select(d=>new PIReadingResult() { QuestionId= d.ReadingQuestionTrialId,Answer=d.Answer})));
CreateMap<VisitTask, PIReaingTaskView>().IncludeBase<VisitTask, ReadingTaskView>() CreateMap<VisitTask, PIReaingTaskView>().IncludeBase<VisitTask, ReadingTaskView>()

View File

@ -144,7 +144,8 @@ namespace IRaCIS.Core.Application.Service
await _internationalizationRepository.SaveChangesAsync(); await _internationalizationRepository.SaveChangesAsync();
//清理缓存
_provider.Set<List<InternationalizationSimpleDto>>(StaticData.InternationalData.Front, new List<InternationalizationSimpleDto>(), TimeSpan.FromDays(1));
return ResponseOutput.Ok(); 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()); return ResponseOutput.Ok(entity.Id.ToString());
} }
@ -192,6 +196,9 @@ namespace IRaCIS.Core.Application.Service
public async Task<IResponseOutput> DeleteInternationalization(Guid internationalizationId) public async Task<IResponseOutput> DeleteInternationalization(Guid internationalizationId)
{ {
var success = await _internationalizationRepository.DeleteFromQueryAsync(t => t.Id == internationalizationId, true); 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(); return ResponseOutput.Ok();
} }

View File

@ -1322,13 +1322,14 @@ namespace IRaCIS.Core.Application.Service
/// </summary> /// </summary>
/// <param name="queryEmailNoticeConfig"></param> /// <param name="queryEmailNoticeConfig"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost]
public async Task<PageOutput<TrialSelectEmailNoticeConfigView>> GetSysEmailNoticeConfigList(EmailNoticeConfigQuery queryEmailNoticeConfig) public async Task<PageOutput<TrialSelectEmailNoticeConfigView>> GetSysEmailNoticeConfigList(EmailNoticeConfigQuery queryEmailNoticeConfig)
{ {
var emailNoticeConfigQueryable = _emailNoticeConfigRepository var emailNoticeConfigQueryable = _emailNoticeConfigRepository
.WhereIf(queryEmailNoticeConfig.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == queryEmailNoticeConfig.BusinessScenarioEnum) .WhereIf(queryEmailNoticeConfig.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == queryEmailNoticeConfig.BusinessScenarioEnum)
.WhereIf(queryEmailNoticeConfig.IsReturnRequired != null, t => t.IsReturnRequired == queryEmailNoticeConfig.IsReturnRequired) .WhereIf(queryEmailNoticeConfig.IsReturnRequired != null, t => t.IsReturnRequired == queryEmailNoticeConfig.IsReturnRequired)
.WhereIf(queryEmailNoticeConfig.IsEnable != null, t => t.IsEnable == queryEmailNoticeConfig.IsEnable) .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 }); .ProjectTo<TrialSelectEmailNoticeConfigView>(_mapper.ConfigurationProvider, new { trialId = queryEmailNoticeConfig.TrialId });
return await emailNoticeConfigQueryable.ToPagedListAsync(queryEmailNoticeConfig.PageIndex, queryEmailNoticeConfig.PageSize, queryEmailNoticeConfig.SortField, queryEmailNoticeConfig.Asc); return await emailNoticeConfigQueryable.ToPagedListAsync(queryEmailNoticeConfig.PageIndex, queryEmailNoticeConfig.PageSize, queryEmailNoticeConfig.SortField, queryEmailNoticeConfig.Asc);

View File

@ -204,7 +204,8 @@ namespace IRaCIS.Application.Services
Path = x.ClinicalDataTrialSet.Path, Path = x.ClinicalDataTrialSet.Path,
IsBlind = x.IsBlind, IsBlind = x.IsBlind,
IsComplete = x.IsComplete, IsComplete = x.IsComplete,
ClinicalFromList=x.Subject.ClinicalFormList.Where(y=>y.ReadingId==x.ReadingId&&y.ClinicalDataTrialSetId==x.ClinicalDataTrialSetId).Select(y=> new ClinicalFromData() { ClinicalFromList = x.Subject.ClinicalFormList.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
{
CheckDate = y.CheckDate, CheckDate = y.CheckDate,
ClinicalFormId = y.Id ClinicalFormId = y.Id
}).ToList(), }).ToList(),
@ -304,8 +305,25 @@ namespace IRaCIS.Application.Services
await this.iServiceProvider.GetService<IReadingImageTaskService>().AddOncologyTask(readingId); await this.iServiceProvider.GetService<IReadingImageTaskService>().AddOncologyTask(readingId);
//如果先生成了任务再签名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); await DealVisiTaskClinicalDataSignedAsync(data.TrialId, data.SubjectId, data.ReadingId, data.IsVisit, inDto.TrialReadingCriterionId);
}
return ResponseOutput.Result(result); return ResponseOutput.Result(result);
} }
@ -710,7 +728,8 @@ namespace IRaCIS.Application.Services
var readingIds = result.Select(x => x.ReadingId).ToList(); var readingIds = result.Select(x => x.ReadingId).ToList();
var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId ?? default(Guid))).ToListAsync(); 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() x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
{ {
@ -730,7 +749,8 @@ namespace IRaCIS.Application.Services
{ {
var moduleCriterionFromList = await _readModuleCriterionFromRepository var moduleCriterionFromList = await _readModuleCriterionFromRepository
.WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId) .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId)
.Where(x => x.ReadModuleId == readModule.Id).Select(x => new{ .Where(x => x.ReadModuleId == readModule.Id).Select(x => new
{
ClinicalFormId = x.ClinicalFormId, ClinicalFormId = x.ClinicalFormId,
CheckDate = x.ClinicalForm.CheckDate, CheckDate = x.ClinicalForm.CheckDate,
ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId
@ -884,7 +904,8 @@ namespace IRaCIS.Application.Services
var readingIds = result.Select(x => x.ReadingId).ToList(); var readingIds = result.Select(x => x.ReadingId).ToList();
var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId ?? default(Guid))).ToListAsync(); 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() x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
{ {
@ -902,7 +923,8 @@ namespace IRaCIS.Application.Services
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) .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.TrialReadingCriterionId)
.Select(x => new { .Select(x => new
{
ClinicalFormId = x.ClinicalFormId, ClinicalFormId = x.ClinicalFormId,
CheckDate = x.ClinicalForm.CheckDate, CheckDate = x.ClinicalForm.CheckDate,
ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId

View File

@ -1045,7 +1045,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List<string> RelevanceValueList { get; set; } public List<string> RelevanceValueList { get; set; }
public List<CalculateInfo> CalculateQuestionList { get; set; } public List<CalculateInfo> CalculateQuestionList { get; set; }
public AssessmentResultType AssessmentResultEnum { get; set; }
} }
public class ReadingQuestionSystemView public class ReadingQuestionSystemView
@ -1986,7 +1986,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List<string> ParentTriggerValueList { get; set; } public List<string> ParentTriggerValueList { get; set; }
public List<string> RelevanceValueList { get; set; } public List<string> RelevanceValueList { get; set; }
public AssessmentResultType AssessmentResultEnum { get; set; }
} }

View File

@ -268,7 +268,7 @@ namespace IRaCIS.Core.Domain.Models
public AssessmentResultType AssessmentResultEnum { get; set; } //
[JsonIgnore] [JsonIgnore]
[ForeignKey("GroupId")] [ForeignKey("GroupId")]