修改
This commit is contained in:
@@ -16,6 +16,7 @@ using IRaCIS.Core.Domain.Models;
|
||||
using IRaCIS.Core.Infrastructure.Extention;
|
||||
using IRaCIS.Core.Application.Service.Reading.Interface;
|
||||
using IRaCIS.Core.Application.Contracts;
|
||||
using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
|
||||
|
||||
namespace IRaCIS.Core.Application.Service
|
||||
{
|
||||
@@ -41,6 +42,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
private readonly IRepository<Subject> _subjectRepository;
|
||||
private readonly IRepository<ReadModuleCriterionFrom> _readModuleCriterionFromRepository;
|
||||
private readonly IRepository<ReadModule> _readModuleRepository;
|
||||
private readonly IRepository<DicomStudy> _dicomStudyRepository;
|
||||
private readonly IRepository<ClinicalQuestionAnswer> _clinicalQuestionAnswerRepository;
|
||||
|
||||
private readonly IRepository<ClinicalTableAnswer> _clinicalTableAnswerRepository;
|
||||
@@ -64,6 +66,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
IReadingClinicalDataService iReadingClinicalDataService,
|
||||
IRepository<ReadModuleCriterionFrom> readModuleCriterionFromRepository,
|
||||
IRepository<ReadModule> readModuleRepository,
|
||||
IRepository<DicomStudy> dicomStudyRepository,
|
||||
IRepository<SubjectVisit> subjectVisitRepository,
|
||||
IRepository<ClinicalTableAnswer> clinicalTableAnswerRepository,
|
||||
IRepository<ClinicalQuestionAnswer> clinicalQuestionAnswerRepository,
|
||||
@@ -87,6 +90,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
this._subjectRepository = subjectRepository;
|
||||
this._readModuleCriterionFromRepository = readModuleCriterionFromRepository;
|
||||
this._readModuleRepository = readModuleRepository;
|
||||
this._dicomStudyRepository = dicomStudyRepository;
|
||||
_clinicalTableAnswerRepository = clinicalTableAnswerRepository;
|
||||
_iClinicalQuestionService = iClinicalQuestionService;
|
||||
}
|
||||
@@ -111,11 +115,56 @@ namespace IRaCIS.Core.Application.Service
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 自动添加CRC临床数据
|
||||
/// 删除检查级别临床数据
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
public async Task AutoAddCRCClinical(AutoAddClinicalInDto inDto)
|
||||
public async Task DeleteStudyClinical(DeleteStudyClinicalInDto inDto)
|
||||
{
|
||||
await _readingClinicalDataRepository.BatchDeleteNoTrackingAsync(x => x.StudyId == inDto.StudyId);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加检查级别临床数据
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
public async Task AddStudyClinical(AddStudyClinicalInDto inDto)
|
||||
{
|
||||
var studyInfo = await _dicomStudyRepository.Where(x => x.Id == inDto.StudyId).FirstNotNullAsync();
|
||||
|
||||
List<ClinicalDataTrialSet> clinicals = await _clinicalDataTrialSetRepository.Where(x =>
|
||||
x.TrialId == studyInfo.TrialId && x.IsConfirm&&x.ClinicalDataLevel== ClinicalLevel.Study).ToListAsync();
|
||||
|
||||
List<ReadingClinicalData> datas = new List<ReadingClinicalData>();
|
||||
|
||||
clinicals.ForEach(x =>
|
||||
{
|
||||
datas.Add(new ReadingClinicalData()
|
||||
{
|
||||
ClinicalDataTrialSetId = x.Id,
|
||||
IsVisit = true,
|
||||
SubjectId = studyInfo.SubjectId,
|
||||
ReadingId = studyInfo.SubjectVisitId,
|
||||
TrialId = studyInfo.TrialId,
|
||||
StudyId = studyInfo.Id
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
await _readingClinicalDataRepository.AddRangeAsync(datas);
|
||||
await _readingClinicalDataRepository.SaveChangesAsync();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 自动添加CRC临床数据 (不包括检查级别)
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
public async Task AutoAddCRCClinical(AutoAddClinicalInDto inDto)
|
||||
{
|
||||
var dataTrialSetList = await _clinicalDataTrialSetRepository.Where(x =>x.TrialId == inDto.TrialId && x.UploadRole == UploadRole.CRC && x.IsConfirm)
|
||||
.IgnoreAutoIncludes().ToListAsync();
|
||||
@@ -194,16 +243,16 @@ namespace IRaCIS.Core.Application.Service
|
||||
TrialId = inDto.TrialId
|
||||
}).ToList());
|
||||
|
||||
readingClinicalDatas.AddRange(
|
||||
dataTrialSetList.Where(x => x.ClinicalDataLevel == ClinicalLevel.Study).Where(x => clinicalDataList.Where(y => y.ClinicalDataTrialSetId == x.Id && y.ReadingId == n.VisitId).Count() == 0)
|
||||
.Select(x => new ReadingClinicalData()
|
||||
{
|
||||
ClinicalDataTrialSetId = x.Id,
|
||||
IsVisit = true,
|
||||
SubjectId = n.SubjectId,
|
||||
ReadingId = n.VisitId,
|
||||
TrialId = inDto.TrialId
|
||||
}).ToList());
|
||||
//readingClinicalDatas.AddRange(
|
||||
// dataTrialSetList.Where(x => x.ClinicalDataLevel == ClinicalLevel.Study).Where(x => clinicalDataList.Where(y => y.ClinicalDataTrialSetId == x.Id && y.ReadingId == n.VisitId).Count() == 0)
|
||||
// .Select(x => new ReadingClinicalData()
|
||||
// {
|
||||
// ClinicalDataTrialSetId = x.Id,
|
||||
// IsVisit = true,
|
||||
// SubjectId = n.SubjectId,
|
||||
// ReadingId = n.VisitId,
|
||||
// TrialId = inDto.TrialId
|
||||
// }).ToList());
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user