Compare commits

..

No commits in common. "8eacc969eda7ec28e9c790c5fc4e7ab0e85271ad" and "9834335767a81fd6eff639d238637d81305802a7" have entirely different histories.

3 changed files with 73 additions and 98 deletions

View File

@ -647,35 +647,14 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
[HttpPost] [HttpPost]
public async Task<List<TaskNoneDicomStudyDTO>> GetIRUploadTaskNoneDicomStudyList(IRUploadStudyQuery inQuery) public async Task<List<TaskNoneDicomStudyDTO>> GetIRUploadTaskNoneDicomStudyList(IRUploadStudyQuery inQuery)
{ {
var subjectCode = string.Empty;
var subjectId = inQuery.SubjectId;
var doctorUserId = _userInfo.Id;
if (inQuery.VisitTaskId != null)
{
//考虑到一致性分析,必须要这个编号进行过滤
//医学审核查看下载按钮,这个时候需要知道医生
var taskInfo = await _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId).Select(t => new {
SubjectCode = t.IsAnalysisCreate ? t.BlindSubjectCode : t.Subject.Code,
SubjectId = t.SubjectId,
t.DoctorUserId,
t.IsAnalysisCreate
}).FirstNotNullAsync();
subjectId = taskInfo.SubjectId;
subjectCode = taskInfo.SubjectCode;
doctorUserId = (Guid)taskInfo.DoctorUserId!;
}
var info = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId) var info = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId)
.Select(t => new { t.IsImageFilter, t.CriterionModalitys, t.IsReadingTaskViewInOrder }).FirstNotNullAsync(); .Select(t => new { t.IsImageFilter, t.CriterionModalitys, t.IsReadingTaskViewInOrder }).FirstNotNullAsync();
var query = from u in _visitTaskRepository.Where(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId var query = from u in _visitTaskRepository.Where(t => t.SubjectId == inQuery.SubjectId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId
&& t.SourceSubjectVisitId != null && t.DoctorUserId == doctorUserId && t.TaskState == TaskState.Effect) && t.SourceSubjectVisitId != null && t.DoctorUserId == _userInfo.Id && t.TaskState == TaskState.Effect)
//满足 有序或者随机只看到当前任务的dicom 非dicom检查 //满足 有序或者随机只看到当前任务的dicom 非dicom检查
.WhereIf(info.IsReadingTaskViewInOrder != ReadingOrder.SubjectRandom && inQuery.VisitTaskId != null, t => t.Id == inQuery.VisitTaskId) .WhereIf(info.IsReadingTaskViewInOrder != ReadingOrder.SubjectRandom && inQuery.VisitTaskId != null, t => t.Id == inQuery.VisitTaskId)
join ns in _noneDicomStudyReposiotry.Where(t => t.SubjectId == subjectId).WhereIf(info.IsImageFilter, t => ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|")) join ns in _noneDicomStudyReposiotry.Where(t => t.SubjectId == inQuery.SubjectId).WhereIf(info.IsImageFilter, t => ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|"))
on u.SourceSubjectVisitId equals ns.SubjectVisitId on u.SourceSubjectVisitId equals ns.SubjectVisitId
select new TaskNoneDicomStudyDTO() select new TaskNoneDicomStudyDTO()
@ -705,7 +684,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
}; };
var list = await query.Where(t => t.SubjectCode == subjectCode).SortToListAsync(inQuery); var list = await query.Where(t => t.SubjectCode == inQuery.SubjectCode).SortToListAsync(inQuery);
var noneDicomStudyTaskIdList = list.Select(t => t.VisitTaskId).ToList(); var noneDicomStudyTaskIdList = list.Select(t => t.VisitTaskId).ToList();

View File

@ -15,8 +15,6 @@ namespace IRaCIS.Core.Application.Contracts
public Guid CreateUserId { get; set; } public Guid CreateUserId { get; set; }
public Guid NoneDicomStudyId { get; set; } public Guid NoneDicomStudyId { get; set; }
public long? FileSize { get; set; }
public string FullFilePath => Path; public string FullFilePath => Path;
public string FileType { get; set; } public string FileType { get; set; }

View File

@ -1,83 +1,81 @@
using IRaCIS.Core.Domain.Models; //using IRaCIS.Core.Domain.Models;
using Microsoft.EntityFrameworkCore.Metadata.Builders; //using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace IRaCIS.Core.Infra.EFCore.EntityConfigration; //namespace IRaCIS.Core.Infra.EFCore.EntityConfigration;
/// <summary> ///// <summary>
/// 医学影像 数据量大,主键是 SeqId ,Id 是自己算的也可以作为Id但是不是有序的数据量大会导致性能很差所以是逻辑主键 ///// 医学影像 数据量大,主键是 SeqId ,Id 是自己算的也可以作为Id但是不是有序的数据量大会导致性能很差所以是逻辑主键
/// </summary> ///// </summary>
public class DicomStudyConfigration : IEntityTypeConfiguration<DicomStudy> //public class DicomStudyConfigration : IEntityTypeConfiguration<DicomStudy>
{ //{
public void Configure(EntityTypeBuilder<DicomStudy> builder) // public void Configure(EntityTypeBuilder<DicomStudy> builder)
{ // {
builder.HasKey(e => e.SeqId); // builder.HasKey(e => e.SeqId);
// }
//}
builder.HasMany(s => s.SeriesList).WithOne(sv => sv.DicomStudy).HasForeignKey(t => t.StudyId).HasPrincipalKey(t=>t.Id); //public class DicomSeriesConfigration : IEntityTypeConfiguration<DicomSeries>
} //{
} // public void Configure(EntityTypeBuilder<DicomSeries> builder)
// {
// builder.HasKey(e => e.SeqId);
// }
//}
public class DicomSeriesConfigration : IEntityTypeConfiguration<DicomSeries> //public class DicomInstanceConfigration : IEntityTypeConfiguration<DicomInstance>
{ //{
public void Configure(EntityTypeBuilder<DicomSeries> builder) // public void Configure(EntityTypeBuilder<DicomInstance> builder)
{ // {
builder.HasKey(e => e.SeqId); // builder.HasKey(e => e.SeqId);
} // }
} //}
public class DicomInstanceConfigration : IEntityTypeConfiguration<DicomInstance> //public class TaskStudyConfigration : IEntityTypeConfiguration<TaskStudy>
{ //{
public void Configure(EntityTypeBuilder<DicomInstance> builder) // public void Configure(EntityTypeBuilder<TaskStudy> builder)
{ // {
builder.HasKey(e => e.SeqId); // builder.HasKey(e => e.SeqId);
} // }
} //}
public class TaskStudyConfigration : IEntityTypeConfiguration<TaskStudy> //public class TaskSeriesConfigration : IEntityTypeConfiguration<TaskSeries>
{ //{
public void Configure(EntityTypeBuilder<TaskStudy> builder) // public void Configure(EntityTypeBuilder<TaskSeries> builder)
{ // {
builder.HasKey(e => e.SeqId); // builder.HasKey(e => e.SeqId);
} // }
} //}
public class TaskSeriesConfigration : IEntityTypeConfiguration<TaskSeries> //public class TaskInstanceConfigration : IEntityTypeConfiguration<TaskInstance>
{ //{
public void Configure(EntityTypeBuilder<TaskSeries> builder) // public void Configure(EntityTypeBuilder<TaskInstance> builder)
{ // {
builder.HasKey(e => e.SeqId); // builder.HasKey(e => e.SeqId);
} // }
} //}
public class TaskInstanceConfigration : IEntityTypeConfiguration<TaskInstance>
{
public void Configure(EntityTypeBuilder<TaskInstance> builder)
{
builder.HasKey(e => e.SeqId);
}
}
public class SCPStudyConfigration : IEntityTypeConfiguration<SCPStudy> //public class SCPStudyConfigration : IEntityTypeConfiguration<SCPStudy>
{ //{
public void Configure(EntityTypeBuilder<SCPStudy> builder) // public void Configure(EntityTypeBuilder<SCPStudy> builder)
{ // {
builder.HasKey(e => e.SeqId); // builder.HasKey(e => e.SeqId);
} // }
} //}
public class SCPSeriesConfigration : IEntityTypeConfiguration<SCPSeries> //public class SCPSeriesConfigration : IEntityTypeConfiguration<SCPSeries>
{ //{
public void Configure(EntityTypeBuilder<SCPSeries> builder) // public void Configure(EntityTypeBuilder<SCPSeries> builder)
{ // {
builder.HasKey(e => e.SeqId); // builder.HasKey(e => e.SeqId);
} // }
} //}
public class SCPInstanceConfigration : IEntityTypeConfiguration<SCPInstance> //public class SCPInstanceConfigration : IEntityTypeConfiguration<SCPInstance>
{ //{
public void Configure(EntityTypeBuilder<SCPInstance> builder) // public void Configure(EntityTypeBuilder<SCPInstance> builder)
{ // {
builder.HasKey(e => e.SeqId); // builder.HasKey(e => e.SeqId);
} // }
} //}