视图替代初步提交
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? SiteCode { get; set; }
|
||||
|
||||
public Guid? TrialSiteId { get; set; }
|
||||
|
||||
|
|
|
@ -91,7 +91,8 @@ namespace IRaCIS.Application.Services
|
|||
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,
|
||||
ModuleName = inDto.Name,
|
||||
});
|
||||
|
@ -99,6 +100,111 @@ namespace IRaCIS.Application.Services
|
|||
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>
|
||||
|
|
|
@ -164,8 +164,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
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.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.ClinicalDataSetNames, u => u.MapFrom(c => c.clinicalDataTrialSets.Where(v => v.IsConfirm).Select(r => isEn_Us ? r.ClinicalDataSetEnName : r.ClinicalDataSetName)))
|
||||
.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.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)))
|
||||
;
|
||||
CreateMap<Domain.Models.Trial, TrialSubjectConfig>();
|
||||
|
|
|
@ -28,6 +28,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
private readonly List<DomainEvent> _domainEvents = [];
|
||||
|
||||
[JsonIgnore]
|
||||
[NotMapped]
|
||||
public IReadOnlyCollection<DomainEvent> DomainEvents => _domainEvents.AsReadOnly();
|
||||
|
||||
|
|
|
@ -32,6 +32,10 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
public List<VisitTask> VisitTaskList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
|
||||
public List<TrialClinicalDataSetCriterion> TrialClinicalDataSetCriterionList { get; set; }
|
||||
|
||||
#endregion
|
||||
/// <summary>
|
||||
/// 系统标准ID
|
||||
|
|
|
@ -75,9 +75,13 @@ namespace IRaCIS.Core.Domain.Models
|
|||
[ForeignKey("ReviewModeId")]
|
||||
public Dictionary ReviewMode { get; set; }
|
||||
|
||||
//[JsonIgnore]
|
||||
|
||||
//public List<TrialClinicalDataSetCriterion> TrialClinicalDataSetCriterionList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
|
||||
public List<ClinicalDataTrialSet> clinicalDataTrialSets { get; set; } = new List<ClinicalDataTrialSet> { };
|
||||
public List<ClinicalDataTrialSet> ClinicalDataTrialSetList { get; set; } = new List<ClinicalDataTrialSet> { };
|
||||
[JsonIgnore]
|
||||
public List<TrialStatusDetail> ClinicalTrialProjectDetails { get; set; } = new List<TrialStatusDetail> { };
|
||||
[JsonIgnore]
|
||||
|
|
Loading…
Reference in New Issue