视图替代初步提交
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
9732b65017
commit
facdb3264d
|
@ -263,7 +263,6 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
|
|
||||||
public string? TrialSiteCode { get; set; }
|
public string? TrialSiteCode { get; set; }
|
||||||
|
|
||||||
public string? SiteCode { get; set; }
|
|
||||||
|
|
||||||
public Guid? TrialSiteId { get; set; }
|
public Guid? TrialSiteId { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,8 @@ namespace IRaCIS.Application.Services
|
||||||
throw new BusinessValidationFailedException(_localizer["ReadModule_CRCConfirmCanNtoEdit"]);
|
throw new BusinessValidationFailedException(_localizer["ReadModule_CRCConfirmCanNtoEdit"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
await _readModuleRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.Id, x => new ReadModule() {
|
await _readModuleRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.Id, x => new ReadModule()
|
||||||
|
{
|
||||||
SubjectVisitId = inDto.SubjectVisitIdId,
|
SubjectVisitId = inDto.SubjectVisitIdId,
|
||||||
ModuleName = inDto.Name,
|
ModuleName = inDto.Name,
|
||||||
});
|
});
|
||||||
|
@ -99,6 +100,111 @@ namespace IRaCIS.Application.Services
|
||||||
return await _readModuleRepository.SaveChangesAsync();
|
return await _readModuleRepository.SaveChangesAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<IResponseOutput<PageOutput<GetReadModuleDtoOut>>> GetReadModuleList_New(GetReadModuleDto inQuery)
|
||||||
|
{
|
||||||
|
|
||||||
|
var criterionInfo = _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.CriterionName,t.ReadingType } ).FirstOrDefault();
|
||||||
|
|
||||||
|
var readingType = (int)criterionInfo.ReadingType;
|
||||||
|
|
||||||
|
var query = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId)
|
||||||
|
.WhereIf(inQuery.SubjectId != null, x => x.Id == inQuery.SubjectId)
|
||||||
|
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.TrialSiteCode), x => x.TrialSite.TrialSiteCode.Contains(inQuery.TrialSiteCode))
|
||||||
|
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.SubjectCode), x => x.Code.Contains(inQuery.SubjectCode))
|
||||||
|
|
||||||
|
.Select(t => new GetReadModuleDtoOut()
|
||||||
|
{
|
||||||
|
SubjectCode = t.Code,
|
||||||
|
SubjectId = t.Id,
|
||||||
|
TrialSiteCode = t.TrialSite.TrialSiteCode,
|
||||||
|
TrialSiteId = t.TrialSiteId,
|
||||||
|
|
||||||
|
//访视要查询不失访的其次要查在 <= 截止访视的,截止访视没有就查这个受试者所有的
|
||||||
|
Data = t.SubjectVisitList.Where(t => t.IsLostVisit == false)
|
||||||
|
.Where(sv => t.FinalSubjectVisitId == null ? true : sv.VisitNum < t.LatestSubjectVisit.VisitNum).Select(sv => new ReadModuleView()
|
||||||
|
{
|
||||||
|
Id = sv.Id,
|
||||||
|
CreateTime = sv.CreateTime,
|
||||||
|
PDState = sv.PDState,
|
||||||
|
IsBaseLine = sv.IsBaseLine,
|
||||||
|
SubjectCode = sv.Subject.Code,
|
||||||
|
IsEnrollmentConfirm = sv.IsEnrollmentConfirm,
|
||||||
|
IsFinalVisit = sv.IsFinalVisit,
|
||||||
|
SubjectId = sv.SubjectId,
|
||||||
|
SubjectVisitId = sv.Id,
|
||||||
|
IsUrgent = sv.IsUrgent,
|
||||||
|
SubjectVisitName = sv.VisitName,
|
||||||
|
IsVisit = true,
|
||||||
|
|
||||||
|
Name = sv.VisitName,
|
||||||
|
TrialSiteId = sv.TrialSiteId,
|
||||||
|
TrialSiteCode = sv.TrialSite.TrialSiteCode,
|
||||||
|
|
||||||
|
TrialId = sv.TrialId,
|
||||||
|
VisitNum = sv.VisitNum,
|
||||||
|
TrialReadingCriterionId = inQuery.TrialReadingCriterionId,
|
||||||
|
|
||||||
|
OutPlanPreviousVisitId = sv.OutPlanPreviousVisitId,
|
||||||
|
|
||||||
|
OutPlanPreviousVisitName = sv.OutPlanPreviousVisit.VisitName,
|
||||||
|
|
||||||
|
ModuleType = sv.InPlan ? ModuleTypeEnum.InPlanSubjectVisit : ModuleTypeEnum.OutPlanSubjectVisit,
|
||||||
|
|
||||||
|
//只有阅片期有
|
||||||
|
CutOffVisitId = null,
|
||||||
|
CutOffVisitName = null,
|
||||||
|
ReadingSetType = null,
|
||||||
|
ReadModuleId = null,
|
||||||
|
ReadModuleName = "",
|
||||||
|
|
||||||
|
|
||||||
|
///阅片状态 0 1 2 保持访视的,任务全做完了就是5 没完成就是4 否则就是3
|
||||||
|
ReadingStatus = sv.ReadingStatus < ReadingStatusEnum.TaskAllocate ? sv.ReadingStatus :
|
||||||
|
(sv.VisitTaskList.Count(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned
|
||||||
|
&& t.ReadingCategory != ReadingCategory.Judge && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) == readingType ? ReadingStatusEnum.ReadCompleted :
|
||||||
|
(sv.VisitTaskList.Count(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.TaskAllocationState == TaskAllocationState.Allocated
|
||||||
|
&& t.ReadingCategory != ReadingCategory.Judge && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) == readingType ? ReadingStatusEnum.ImageReading : ReadingStatusEnum.TaskAllocate)),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//是否是截止访视?
|
||||||
|
IsCanChangeCutOffVisit = false,
|
||||||
|
|
||||||
|
//需要签名数量计算 基线包含subject+访视级别的
|
||||||
|
NeedSignClinicalDataCount = sv.Trial.TrialReadingCriterionList.Where(t=>t.Id==inQuery.TrialReadingCriterionId).SelectMany(u=>u.TrialClinicalDataSetCriterionList).Where(t => t.TrialClinicalDataSet.IsConfirm == true).
|
||||||
|
Where(t => sv.IsBaseLine ? t.TrialClinicalDataSet.ClinicalDataLevel <= ClinicalLevel.SubjectVisit : t.TrialClinicalDataSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit).Count()
|
||||||
|
+ (sv.Trial.TrialReadingCriterionList.Where(t => t.Id == inQuery.TrialReadingCriterionId).SelectMany(u => u.TrialClinicalDataSetCriterionList).Where(t => t.TrialClinicalDataSet.IsConfirm == true)
|
||||||
|
.Any(t => t.TrialClinicalDataSet.ClinicalDataLevel == ClinicalLevel.Study)?1:0),
|
||||||
|
|
||||||
|
//签名的数量
|
||||||
|
|
||||||
|
SignClinicalDataCount = sv.ReadingClinicalDataList.Where(t=>t.IsSign==true && t.ClinicalDataTrialSet.ClinicalDataLevel!=ClinicalLevel.Study &&
|
||||||
|
t.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)).Count()
|
||||||
|
|
||||||
|
+( (sv.SubmitState==SubmitStateEnum.Submitted && sv.ReadingClinicalDataList.Where(t => t.IsSign == true && t.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Study &&
|
||||||
|
t.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)).Any())?1:0),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//标准名 应该是可以不查询的,只要保证逻辑正确
|
||||||
|
CriterionName = criterionInfo.CriterionName,
|
||||||
|
|
||||||
|
|
||||||
|
}).ToList()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}) ; ;
|
||||||
|
|
||||||
|
var pageList= await query.ToPagedListAsync(inQuery) ;
|
||||||
|
|
||||||
|
|
||||||
|
return ResponseOutput.Ok(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取读片模块 //加了标准参数
|
/// 获取读片模块 //加了标准参数
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -164,8 +164,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
CreateMap<Domain.Models.Trial, TrialConfigDTO>().ForMember(t => t.TrialId, u => u.MapFrom(c => c.Id))
|
CreateMap<Domain.Models.Trial, TrialConfigDTO>().ForMember(t => t.TrialId, u => u.MapFrom(c => c.Id))
|
||||||
.ForMember(t => t.TrialCriterionIds, u => u.MapFrom(c => c.TrialReadingCriterionList.Where(v => v.IsConfirm).OrderBy(x => x.ShowOrder).Select(r => r.Id)))
|
.ForMember(t => t.TrialCriterionIds, u => u.MapFrom(c => c.TrialReadingCriterionList.Where(v => v.IsConfirm).OrderBy(x => x.ShowOrder).Select(r => r.Id)))
|
||||||
.ForMember(t => t.TrialCriterionNames, u => u.MapFrom(c => c.TrialReadingCriterionList.Where(v => v.IsConfirm).OrderBy(x => x.ShowOrder).Select(r => r.CriterionName)))
|
.ForMember(t => t.TrialCriterionNames, u => u.MapFrom(c => c.TrialReadingCriterionList.Where(v => v.IsConfirm).OrderBy(x => x.ShowOrder).Select(r => r.CriterionName)))
|
||||||
.ForMember(t => t.ClinicalDataTrialSetIds, u => u.MapFrom(c => c.clinicalDataTrialSets.Where(v => v.IsConfirm).Select(r => r.Id)))
|
.ForMember(t => t.ClinicalDataTrialSetIds, u => u.MapFrom(c => c.ClinicalDataTrialSetList.Where(v => v.IsConfirm).Select(r => r.Id)))
|
||||||
.ForMember(t => t.ClinicalDataSetNames, u => u.MapFrom(c => c.clinicalDataTrialSets.Where(v => v.IsConfirm).Select(r => isEn_Us ? r.ClinicalDataSetEnName : r.ClinicalDataSetName)))
|
.ForMember(t => t.ClinicalDataSetNames, u => u.MapFrom(c => c.ClinicalDataTrialSetList.Where(v => v.IsConfirm).Select(r => isEn_Us ? r.ClinicalDataSetEnName : r.ClinicalDataSetName)))
|
||||||
//.ForMember(t => t.CriterionIds, u => u.MapFrom(c => c.TrialDicList.Where(v => v.KeyName == StaticData.Criterion).Select(r => r.DictionaryId)))
|
//.ForMember(t => t.CriterionIds, u => u.MapFrom(c => c.TrialDicList.Where(v => v.KeyName == StaticData.Criterion).Select(r => r.DictionaryId)))
|
||||||
;
|
;
|
||||||
CreateMap<Domain.Models.Trial, TrialSubjectConfig>();
|
CreateMap<Domain.Models.Trial, TrialSubjectConfig>();
|
||||||
|
|
|
@ -28,6 +28,7 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
|
|
||||||
private readonly List<DomainEvent> _domainEvents = [];
|
private readonly List<DomainEvent> _domainEvents = [];
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public IReadOnlyCollection<DomainEvent> DomainEvents => _domainEvents.AsReadOnly();
|
public IReadOnlyCollection<DomainEvent> DomainEvents => _domainEvents.AsReadOnly();
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,10 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
|
|
||||||
public List<VisitTask> VisitTaskList { get; set; }
|
public List<VisitTask> VisitTaskList { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
|
||||||
|
public List<TrialClinicalDataSetCriterion> TrialClinicalDataSetCriterionList { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 系统标准ID
|
/// 系统标准ID
|
||||||
|
|
|
@ -75,9 +75,13 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
[ForeignKey("ReviewModeId")]
|
[ForeignKey("ReviewModeId")]
|
||||||
public Dictionary ReviewMode { get; set; }
|
public Dictionary ReviewMode { get; set; }
|
||||||
|
|
||||||
|
//[JsonIgnore]
|
||||||
|
|
||||||
|
//public List<TrialClinicalDataSetCriterion> TrialClinicalDataSetCriterionList { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
|
|
||||||
public List<ClinicalDataTrialSet> clinicalDataTrialSets { get; set; } = new List<ClinicalDataTrialSet> { };
|
public List<ClinicalDataTrialSet> ClinicalDataTrialSetList { get; set; } = new List<ClinicalDataTrialSet> { };
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public List<TrialStatusDetail> ClinicalTrialProjectDetails { get; set; } = new List<TrialStatusDetail> { };
|
public List<TrialStatusDetail> ClinicalTrialProjectDetails { get; set; } = new List<TrialStatusDetail> { };
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
|
|
Loading…
Reference in New Issue