问题修改

IRC_NewDev
he 2024-04-12 15:39:43 +08:00
parent 8daf02246e
commit ed6a6fb844
8 changed files with 41 additions and 13 deletions

View File

@ -59,7 +59,8 @@ namespace IRaCIS.Core.Application.Service
;
CreateMap<DicomStudy, QAStudyInfoDTO>()
.ForMember(o => o.UploadedTime, t => t.MapFrom(u => u.CreateTime))
.ForMember(o => o.IsCompleteClinicalData, t => t.MapFrom(u => !u.ReadingClinicalDataList.Any(x=>x.ReadingClinicalDataPDFList.Count()==0)))
.ForMember(o => o.UploadedTime, t => t.MapFrom(u => u.CreateTime))
.ForMember(o => o.Uploader, t => t.MapFrom(u => u.Uploader.LastName + " / " + u.Uploader.FirstName))
.ForMember(o => o.StudyId, t => t.MapFrom(u => u.Id))
.ForMember(o => o.IsHaveUploadFailed, t => t.MapFrom(u => u.DicomStudyMonitorList.Any(t=>t.FailedFileCount>0)))

View File

@ -387,7 +387,10 @@ namespace IRaCIS.Core.Application.Contracts.DTO
public string ModalityForEdit { get; set; } = string.Empty;
public bool IsHaveUploadFailed { get; set; }
}
public bool IsCompleteClinicalData { get; set; }
}
public class QASeriesInfoDto
{

View File

@ -123,8 +123,11 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsEnrollementQualificationConfirm { get; set; }
public bool IsPDProgressView { get; set; }
public bool IsHaveStudyClinicalData { get; set; }
public string OutEnrollmentVisitName { get; set; } = String.Empty;
public string OutEnrollmentVisitName { get; set; } = String.Empty;
public string BodyPartTypes { get; set; } = String.Empty;

View File

@ -16,7 +16,8 @@ namespace IRaCIS.Core.Application.Image.QA
{
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
private readonly IRepository<Trial> _trialRepository;
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSet;
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSet;
private readonly IRepository<TrialQCQuestionAnswer> _trialQCQuestionAnswerRepository;
private readonly IRepository<TrialQCQuestion> _trialQCQuestionRepository;
private readonly IRepository<InspectionFile> _consistencyCheckFileRepository;
@ -26,7 +27,8 @@ namespace IRaCIS.Core.Application.Image.QA
public QCListService(
IRepository<SubjectVisit> subjectVisitRepository,
IRepository<Trial> trialRepository,
IRepository<ClinicalDataTrialSet> clinicalDataTrialSet,
IRepository<ClinicalDataTrialSet> clinicalDataTrialSetRepository,
IRepository<ClinicalDataTrialSet> clinicalDataTrialSet,
IRepository<TrialQCQuestionAnswer> trialQCQuestionAnswerRepository,
IRepository<TrialQCQuestion> trialQCQuestionRepository,
IReadingImageTaskService IReadingImageTaskService,
@ -39,7 +41,8 @@ namespace IRaCIS.Core.Application.Image.QA
this._trialQCQuestionRepository = trialQCQuestionRepository;
this._consistencyCheckFileRepository = consistencyCheckFileRepository;
_trialRepository = trialRepository;
this._clinicalDataTrialSet = clinicalDataTrialSet;
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
this._clinicalDataTrialSet = clinicalDataTrialSet;
}
@ -760,12 +763,17 @@ namespace IRaCIS.Core.Application.Image.QA
[HttpGet("{subjectVisitId:guid}")]
public async Task<(List<QAStudyInfoDTO>,object)> GetSubjectVisitUploadedStudyList(Guid subjectVisitId)
{
var visit = await _subjectVisitRepository.Where(x => x.Id == subjectVisitId).FirstNotNullAsync();
var list= await _repository.Where<DicomStudy>(s => s.SubjectVisitId == subjectVisitId).IgnoreQueryFilters().ProjectTo<QAStudyInfoDTO>(_mapper.ConfigurationProvider).OrderBy(t=>t.StudyCode).ToListAsync();
var config = await _repository.Where<SubjectVisit>(t => t.Id == subjectVisitId).Select(t=>t.Trial).ProjectTo<TrialSubjectAndSVConfig>(_mapper.ConfigurationProvider).FirstOrDefaultAsync().IfNullThrowException();
return (list, config);
config.IsHaveStudyClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(x => x.IsConfirm && x.TrialId == visit.TrialId && x.ClinicalDataLevel == ClinicalLevel.Study);
return (list, config);
}

View File

@ -71,8 +71,8 @@ namespace IRaCIS.Core.Application.Triggers
// 检查类型 ModalityForEdit
// 检查模态 Modalities
var modalityForEdit = context.Entity.ModalityForEdit;
if (modalityForEdit.Contains("PT") && modalityForEdit.Contains("CT"))
var modalities = context.Entity.Modalities;
if (modalities.Contains("PT") && modalities.Contains("CT"))
{
await _iClinicalAnswerService.AddStudyClinical(new Service.Reading.Dto.AddStudyClinicalInDto()
{

View File

@ -88,10 +88,14 @@ namespace IRaCIS.Core.Domain.Models
[ForeignKey("CreateUserId")]
public User Uploader { get; set; }
[JsonIgnore]
public List<ReadingClinicalData> ReadingClinicalDataList { get; set; }
//软删除
public bool IsDeleted { get; set; }
//软删除
public bool IsDeleted { get; set; }
public DateTime? DeletedTime { get; set; }

View File

@ -77,9 +77,11 @@ namespace IRaCIS.Core.Domain.Models
public ClinicalDataTrialSet ClinicalDataTrialSet { get; set; }
[JsonIgnore]
public DicomStudy? DicomStudy { get; set; }
[JsonIgnore]
[JsonIgnore]
[ForeignKey("TrialId")]
public Trial Trial { get; set; }

View File

@ -24,6 +24,13 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
.HasForeignKey(s => new { s.TrialId, s.SiteId })
.HasPrincipalKey(c => new { c.TrialId, c.SiteId });
}
builder
.HasMany(s => s.ReadingClinicalDataList)
.WithOne(c => c.DicomStudy)
.HasForeignKey(s => new { s.StudyId })
.HasPrincipalKey(c => new { c.Id });
}
}
}