diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs index ddcc65d0b..a37441d60 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs @@ -654,7 +654,7 @@ namespace IRaCIS.Application.Services var query = subjectVisitQuery.Union(readMouduleQuery) - .WhereIf(inQuery.SubjectId != null, x => x.Id == inQuery.SubjectId) + .WhereIf(inQuery.SubjectId != null, x => x.SubjectId == inQuery.SubjectId) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.TrialSiteCode), x => x.TrialSiteCode.Contains(inQuery.TrialSiteCode)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.SubjectCode), x => x.SubjectCode.Contains(inQuery.SubjectCode)) .WhereIf(isFilterModuleType, t => t.ModuleType == inQuery.ModuleType) diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/DictionaryConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/DictionaryConfigration.cs deleted file mode 100644 index 9d77cb761..000000000 --- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/DictionaryConfigration.cs +++ /dev/null @@ -1,24 +0,0 @@ -using IRaCIS.Core.Domain.Models; -using Microsoft.EntityFrameworkCore.Metadata.Builders; -using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace IRaCIS.Core.Infra.EFCore.EntityConfigration -{ - public class DictionaryConfigration : IEntityTypeConfiguration - { - - - public void Configure(EntityTypeBuilder builder) - { - - //自身同时存在一对多 和一对一的关系,配置一对多的就可以,一对一 不用配置,有点奇怪 - builder.HasMany(t => t.ChildList).WithOne(t => t.Parent).HasForeignKey(d => d.ParentId); - - } - } -} diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/NoneDicomStudyConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/NoneDicomStudyConfigration.cs deleted file mode 100644 index a2a0f9ce9..000000000 --- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/NoneDicomStudyConfigration.cs +++ /dev/null @@ -1,20 +0,0 @@ -using IRaCIS.Core.Domain.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Builders; -using System.Reflection.Emit; - - -namespace IRaCIS.Core.Infra.EFCore.EntityConfigration -{ - public class NoneDicomStudyConfigration : IEntityTypeConfiguration - { - - - public void Configure(EntityTypeBuilder builder) - { - - builder.HasMany(t => t.NoneDicomFileList).WithOne(s => s.NoneDicomStudy).HasForeignKey(t => t.NoneDicomStudyId); - builder.HasMany(t => t.TaskNoneDicomFileList).WithOne(s => s.OriginNoneDicomStudy).HasForeignKey(t => t.OriginNoneDicomStudyId); - } - } -} diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/ReadModuleConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/ReadModuleConfigration.cs deleted file mode 100644 index 6159328a5..000000000 --- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/ReadModuleConfigration.cs +++ /dev/null @@ -1,18 +0,0 @@ -using IRaCIS.Core.Domain.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Builders; - - -namespace IRaCIS.Core.Infra.EFCore.EntityConfigration -{ - public class ReadModuleConfigration : IEntityTypeConfiguration - { - - - public void Configure(EntityTypeBuilder builder) - { - - builder.HasOne(t => t.SubjectVisit).WithMany(t => t.ReadModuleList).HasForeignKey(t=>t.SubjectVisitId); - } - } -} diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/ReadingQuestionTrialConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/ReadingQuestionTrialConfigration.cs deleted file mode 100644 index 85d875028..000000000 --- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/ReadingQuestionTrialConfigration.cs +++ /dev/null @@ -1,25 +0,0 @@ -using IRaCIS.Core.Domain.Models; -using Microsoft.EntityFrameworkCore.Metadata.Builders; -using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace IRaCIS.Core.Infra.EFCore.EntityConfigration -{ - - public class ReadingQuestionTrialConfigration : IEntityTypeConfiguration - { - - - public void Configure(EntityTypeBuilder builder) - { - - - builder.HasQueryFilter(p => p.IsAdditional == false); - - } - } -} diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/StudyConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/StudyConfigration.cs index c1b0133e8..490d1980f 100644 --- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/StudyConfigration.cs +++ b/IRaCIS.Core.Infra.EFCore/EntityConfigration/StudyConfigration.cs @@ -8,11 +8,13 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration public class StudyConfigration : IEntityTypeConfiguration { - + /// + /// 一个外键,关联多个表 + /// + /// public void Configure(EntityTypeBuilder builder) { - builder .HasMany(s => s.ReadingClinicalDataList) .WithOne(c => c.DicomStudy) diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/SubjectConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/SubjectConfigration.cs index 87893ad17..b22f05c95 100644 --- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/SubjectConfigration.cs +++ b/IRaCIS.Core.Infra.EFCore/EntityConfigration/SubjectConfigration.cs @@ -6,9 +6,7 @@ using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace IRaCIS.Core.Infra.EFCore.EntityConfigration { public class SubjectConfigration : IEntityTypeConfiguration - { - - + { public void Configure(EntityTypeBuilder builder) { @@ -18,4 +16,24 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration builder.HasMany(s => s.SubjectVisitList).WithOne(sv => sv.Subject).HasForeignKey(t => t.SubjectId); } } + public class DictionaryConfigration : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder builder) + { + + //自身同时存在一对多 和一对一的关系,配置一对多的就可以,一对一 不用配置,有点奇怪 + builder.HasMany(t => t.ChildList).WithOne(t => t.Parent).HasForeignKey(d => d.ParentId); + + } + } + + public class NoneDicomStudyConfigration : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder builder) + { + //同样一个实体 有两个相同的类型的导航属性,需要手动配置 + builder.HasMany(t => t.NoneDicomFileList).WithOne(s => s.NoneDicomStudy).HasForeignKey(t => t.NoneDicomStudyId); + builder.HasMany(t => t.TaskNoneDicomFileList).WithOne(s => s.OriginNoneDicomStudy).HasForeignKey(t => t.OriginNoneDicomStudyId); + } + } } diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialSiteConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialSiteConfigration.cs deleted file mode 100644 index a9173db0a..000000000 --- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialSiteConfigration.cs +++ /dev/null @@ -1,25 +0,0 @@ -using IRaCIS.Core.Domain.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Builders; - - -namespace IRaCIS.Core.Infra.EFCore.EntityConfigration -{ - - public class SubjectCriteriaEvaluationConfigration : IEntityTypeConfiguration - { - - - public void Configure(EntityTypeBuilder builder) - { - builder - .HasMany(s => s.SubjectCriteriaEvaluationVisitFilterList) - .WithOne(c => c.SubjectCriteriaEvaluation) - .HasForeignKey(s => new { s.SubjectId, s.TrialReadingCriterionId }) - .HasPrincipalKey(c => new { c.SubjectId, c.TrialReadingCriterionId }); - - } - } - - -} diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialUserConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialUserConfigration.cs index ffc7a2ba8..c0fefeb07 100644 --- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialUserConfigration.cs +++ b/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialUserConfigration.cs @@ -8,8 +8,6 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration public class TrialUserConfigration : IEntityTypeConfiguration { - - public void Configure(EntityTypeBuilder builder) { builder @@ -21,14 +19,19 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration } } - public class UserConfigration : IEntityTypeConfiguration + public class SubjectCriteriaEvaluationConfigration : IEntityTypeConfiguration { - - public void Configure(EntityTypeBuilder builder) + public void Configure(EntityTypeBuilder builder) { - builder.HasMany(t => t.VisitTaskList).WithOne(t => t.DoctorUser).HasForeignKey(t => t.DoctorUserId).IsRequired(false); + builder + .HasMany(s => s.SubjectCriteriaEvaluationVisitFilterList) + .WithOne(c => c.SubjectCriteriaEvaluation) + .HasForeignKey(s => new { s.SubjectId, s.TrialReadingCriterionId }) + .HasPrincipalKey(c => new { c.SubjectId, c.TrialReadingCriterionId }); } } + + } diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/VisitTaskConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/VisitTaskConfigration.cs index 6cf3de657..0c48832b7 100644 --- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/VisitTaskConfigration.cs +++ b/IRaCIS.Core.Infra.EFCore/EntityConfigration/VisitTaskConfigration.cs @@ -15,31 +15,24 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration builder.HasMany(t => t.JudgeVisitList).WithOne(t => t.JudgeVisitTask); - builder.HasMany(t => t.TaskMedicalReviewList).WithOne(t => t.VisitTask).HasForeignKey(t => t.VisitTaskId); builder.HasOne(t => t.Subject).WithMany(s => s.SubjectVisitTaskList).HasForeignKey(t => t.SubjectId); builder.HasMany(t => t.TaskInfluenceList).WithOne(s => s.OriginalTask).HasForeignKey(t => t.OriginalTaskId); - builder.HasMany(t => t.GlobalVisitResultList).WithOne(s => s.GlobalVisitTask).HasForeignKey(t => t.GlobalTaskId); - - builder.HasQueryFilter(b => b.Subject.IsDeleted == false); + } + } + public class ReadingQuestionTrialConfigration : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder builder) + { - //modelBuilder.Entity().HasMany(t => t.DoctorTrialVisitTaskList).WithOne(t => t.DoctorTaskMedicalReviewRule).HasForeignKey(t => new { t.DoctorUserId, t.TrialId }).HasPrincipalKey(u => new { u.DoctorUserId, u.TrialId }); - - //modelBuilder.Entity().HasMany(t => t.TaskMedicalReviewList).WithOne(t => t.TaskMedicalReviewRule).HasForeignKey(t => new { t.DoctorUserId, t.TrialId }).HasPrincipalKey(u => new { u.DoctorUserId, u.TrialId }); - - //会导致级联删除 - //modelBuilder.Entity().HasMany(t => t.SubjectArmVisitTaskList).WithOne(t => t.SujectArm).HasForeignKey(t => new { t.SubjectId, t.ArmEnum }).HasPrincipalKey(u => new { u.SubjectId, u.ArmEnum }) - // ./*IsRequired(false)*/OnDelete(DeleteBehavior.NoAction); - - // builder.HasOne(t => t.SujectArm).WithMany(s => s.SubjectArmVisitTaskList).HasForeignKey(t => new { t.SubjectId, t.ArmEnum }).HasPrincipalKey(u => new { u.SubjectId, u.ArmEnum }); - + builder.HasQueryFilter(p => p.IsAdditional == false); } } @@ -51,7 +44,13 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration builder.HasMany(t => t.EarlierSubjectUserList).WithOne(t => t.OrignalSubjectUser); } } - + public class UserConfigration : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder builder) + { + builder.HasMany(t => t.VisitTaskList).WithOne(t => t.DoctorUser).HasForeignKey(t => t.DoctorUserId).IsRequired(false); + } + } } diff --git a/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj b/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj index 77dd99306..9d1a28e03 100644 --- a/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj +++ b/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj @@ -1,8 +1,4 @@  - - utf-8 - utf-8 - enable