diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 04209cfae..19b0d7c54 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -37,6 +37,8 @@ namespace IRaCIS.Core.Application.Service private readonly IRepository _clinicalFormRepository; private readonly IRepository _subjectRepository; + private readonly IRepository _readModuleCriterionFromRepository; + private readonly IRepository _readModuleRepository; private readonly IRepository _clinicalQuestionAnswerRepository; private readonly IRepository _clinicalTableAnswerRepository; @@ -55,6 +57,8 @@ namespace IRaCIS.Core.Application.Service IRepository readingClinicalDataRepository, IRepository clinicalFormRepository, IRepository subjectRepository, + IRepository readModuleCriterionFromRepository, + IRepository readModuleRepository, IRepository subjectVisitRepository, IRepository clinicalTableAnswerRepository, IRepository clinicalQuestionAnswerRepository, @@ -76,6 +80,8 @@ namespace IRaCIS.Core.Application.Service _clinicalFormRepository = clinicalFormRepository; this._subjectRepository = subjectRepository; + this._readModuleCriterionFromRepository = readModuleCriterionFromRepository; + this._readModuleRepository = readModuleRepository; _clinicalTableAnswerRepository = clinicalTableAnswerRepository; _iClinicalQuestionService = iClinicalQuestionService; } @@ -393,5 +399,65 @@ namespace IRaCIS.Core.Application.Service return ResponseOutput.Ok(true); } - } + + /// + /// 获取CRC确认列表 + /// + /// + /// + [HttpPost] + public async Task> GetCRCConfirmList(GetCRCConfirmListInDto inDto) + { + + List result = await _readModuleRepository.Where(x => x.TrialId == inDto.TrialId) + .Select(x => new GetCRCConfirmListOutDto() + { + IsCRCConfirm = x.IsCRCConfirm, + LatestScanDate = x.SubjectVisit.LatestScanDate, + ReadingSetType = x.ReadingSetType, + IsPMConfirm = x.IsPMConfirm, + ReadModuleId=x.Id, + + }).OrderBy(x => x.LatestScanDate).ToListAsync(); + + var formList = await _clinicalFormRepository.Where(x => x.TrialId == inDto.TrialId) + .Where(x=> x.ClinicalDataTrialSet.UploadRole==UploadRole.CRC) + .Where(x=> x.ClinicalDataTrialSet.ClinicalDataLevel==ClinicalLevel.ImageRead|| x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.OncologyRead) + .Select(x =>new CRCConfirmFormList + { + CkeckDate=x.CheckDate, + ClinicalDataLevel= x.ClinicalDataTrialSet.ClinicalDataLevel, + + + }).ToListAsync(); + + var confirmList = await _readModuleCriterionFromRepository.Where(x => x.TrialId == inDto.TrialId).ToListAsync(); + + result.ForEach(x => + { + if (x.IsCRCConfirm) + { + x.FormCount = confirmList.Where(y => y.ReadModuleId == x.ReadModuleId).Count(); + + } + else + { + if (x.ReadingSetType == ReadingSetType.ImageReading) + { + x.FormCount = formList.Where(y => y.ClinicalDataLevel == ClinicalLevel.ImageRead&&y.CkeckDate<=x.LatestScanDate).Count(); + + } + else + { + x.FormCount = formList.Where(y => y.ClinicalDataLevel == ClinicalLevel.OncologyRead&&y.CkeckDate <= x.LatestScanDate).Count(); + } + + } + + }); + return result; + } + + + } } diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs index 2f93c6e40..79dde8334 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs @@ -472,7 +472,11 @@ namespace IRaCIS.Core.Application.Service { question.GroupId = questionRelation[question.GroupId ?? default(Guid)]; } - addTrialDataList.Add(question); + if (question.RelevanceId != null) + { + question.RelevanceId = questionRelation[question.RelevanceId ?? default(Guid)]; + } + addTrialDataList.Add(question); }; diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs index fb947d31d..081775f70 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs @@ -1,4 +1,5 @@ -using System; +using IRaCIS.Core.Domain.Share; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -93,7 +94,41 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string Answer { get; set; } = string.Empty; } - public class SubmitClinicalFormInDto + public class GetCRCConfirmListInDto + { + public Guid TrialId { get; set; } + } + + public class CRCConfirmFormList + { + public DateTime? CkeckDate { get; set; } + + /// + /// 临床级别 + /// + public ClinicalLevel ClinicalDataLevel { get; set; } + } + + + public class GetCRCConfirmListOutDto + { + public Guid ReadModuleId { get; set; } + + public bool IsPMConfirm { get; set; } + + public ReadingSetType ReadingSetType { get; set; } + + public bool IsCRCConfirm { get; set; } = false; + + /// + /// 最晚拍片日期 + /// + public DateTime? LatestScanDate { get; set; } + + public int FormCount { get; set; } + } + + public class SubmitClinicalFormInDto { /// /// VisitId diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs index 5da3ced15..56894a7f5 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs @@ -128,15 +128,25 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public int ShowOrder { get; set; } = 0; - /// - /// 是否必填 - /// - public bool IsRequired { get; set; } = false; + /// + /// 是否必填 + /// + public IsRequired IsRequired { get; set; } - /// - /// 父问题Id - /// - public Guid? ParentId { get; set; } + /// + /// 关联Value + /// + public string RelevanceValue { get; set; } = string.Empty; + + /// + /// 关联ID + /// + public Guid? RelevanceId { get; set; } + + /// + /// 父问题Id + /// + public Guid? ParentId { get; set; } /// /// 父问题触发值 @@ -297,15 +307,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public int ShowOrder { get; set; } - /// - /// 是否必填 - /// - public bool IsRequired { get; set; } + /// + /// 是否必填 + /// + public IsRequired IsRequired { get; set; } - /// - /// 创建时间 - /// - public DateTime CreateTime { get; set; } + /// + /// 创建时间 + /// + public DateTime CreateTime { get; set; } /// /// 创建人 diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs index 43ea5b35f..dac8fb262 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs @@ -72,15 +72,25 @@ namespace IRaCIS.Core.Domain.Models /// public int ShowOrder { get; set; } = 0; - /// - /// 是否必填 - /// - public bool IsRequired { get; set; } = false; + /// + /// 是否必填 + /// + public IsRequired IsRequired { get; set; } - /// - /// 创建时间 - /// - public DateTime CreateTime { get; set; } + /// + /// 关联Value + /// + public string RelevanceValue { get; set; } = string.Empty; + + /// + /// 关联ID + /// + public Guid? RelevanceId { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreateTime { get; set; } /// /// 创建人 diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs index 97b019d28..7498f3e25 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs @@ -64,15 +64,15 @@ namespace IRaCIS.Core.Domain.Models /// 排序 /// public int ShowOrder { get; set; } - + /// - /// 是否必填 - /// - public bool IsRequired { get; set; } - + /// 是否必填 + /// + public IsRequired IsRequired { get; set; } + /// - /// 创建时间 - /// + /// 创建时间 + /// public DateTime CreateTime { get; set; } /// diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs index 994c4ac14..97ef17e9e 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs @@ -75,12 +75,22 @@ namespace IRaCIS.Core.Domain.Models /// /// 是否必填 /// - public bool IsRequired { get; set; } = false; + public IsRequired IsRequired { get; set; } - /// - /// 系统临床问题Id - /// - public Guid? SystemClinicalQuestionId { get; set; } + /// + /// 关联Value + /// + public string RelevanceValue { get; set; } = string.Empty; + + /// + /// 关联ID + /// + public Guid? RelevanceId { get; set; } + + /// + /// 系统临床问题Id + /// + public Guid? SystemClinicalQuestionId { get; set; } /// /// 创建时间 diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs index 0cf0e675e..1e88cc3ce 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs @@ -64,15 +64,15 @@ namespace IRaCIS.Core.Domain.Models /// 排序 /// public int ShowOrder { get; set; } - + /// - /// 是否必填 - /// - public bool IsRequired { get; set; } - + /// 是否必填 + /// + public IsRequired IsRequired { get; set; } + /// - /// 创建时间 - /// + /// 创建时间 + /// public DateTime CreateTime { get; set; } /// diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ClinicalForm.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ClinicalForm.cs index ea748bc2a..71d126eaa 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ClinicalForm.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ClinicalForm.cs @@ -54,6 +54,11 @@ namespace IRaCIS.Core.Domain.Models /// public Guid? ReadingId { get; set; } - } + + [JsonIgnore] + [ForeignKey("ClinicalDataTrialSetId")] + public ClinicalDataTrialSet ClinicalDataTrialSet { get; set; } + + } } diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ReadModuleCriterionFrom.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ReadModuleCriterionFrom.cs new file mode 100644 index 000000000..dbfa8d0a7 --- /dev/null +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ReadModuleCriterionFrom.cs @@ -0,0 +1,52 @@ + +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-06-29 16:36:05 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +using System; +using IRaCIS.Core.Domain.Share; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +namespace IRaCIS.Core.Domain.Models +{ + /// + ///ReadModuleCriterionFrom + /// + [Table("ReadModuleCriterionFrom")] + public class ReadModuleCriterionFrom : Entity, IAuditAdd + { + + /// + /// 阅片期Id + /// + public Guid ReadModuleId { get; set; } + + /// + /// 受试者Id + /// + public Guid SubjectId { get; set; } + + /// + /// 项目Id + /// + public Guid TrialId { get; set; } + + /// + /// 表单Id + /// + public Guid ClinicalFormId { get; set; } + + /// + /// 创建人 + /// + public Guid CreateUserId { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreateTime { get; set; } + + } + + +} diff --git a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs index 90be395aa..fba287340 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs @@ -75,11 +75,11 @@ namespace IRaCIS.Core.Domain.Models public DateTime UpdateTime { get; set; } - + public bool IsCRCConfirm { get; set; } = false; - - public bool IsDeleted { get; set; } + public bool IsPMConfirm { get; set; } = false; + public bool IsDeleted { get; set; } public DateTime? DeletedTime { get; set; } diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 6cc45ea24..3d8ac8b8d 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -418,8 +418,8 @@ namespace IRaCIS.Core.Infra.EFCore public virtual DbSet ClinicalTableAnswer { get; set; } - - public virtual DbSet ClinicalForm { get; set; } + public virtual DbSet ReadModuleCriterionFrom { get; set; } + public virtual DbSet ClinicalForm { get; set; } #endregion diff --git a/IRaCIS.Core.Test/DbHelper.ttinclude b/IRaCIS.Core.Test/DbHelper.ttinclude index c7a365096..b0b701547 100644 --- a/IRaCIS.Core.Test/DbHelper.ttinclude +++ b/IRaCIS.Core.Test/DbHelper.ttinclude @@ -4,7 +4,7 @@ public static readonly string ConnectionString = "Server=123.56.94.154,1433\\MSSQLSERVER;Database=IRaCIS_New_Tet;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true"; public static readonly string DbDatabase = "IRaCIS_New_Tet"; //ַ,ƴ - public static readonly string TableName = "ClinicalForm"; + public static readonly string TableName = "ReadModuleCriterionFrom"; //ļ service Ƿҳ } #>