xiu
parent
d639afb8a0
commit
2281c50747
|
@ -51,6 +51,14 @@ namespace IRaCIS.Application.Services
|
|||
[HttpPost]
|
||||
public async Task<IResponseOutput> AddOrUpdateClinicalDataTrialSet(ClinicalDataTrialSetAddOrEdit indto)
|
||||
{
|
||||
var existsQuery = _clinicalDataTrialSetRepository
|
||||
.WhereIf(indto.Id != null, x => x.Id != indto.Id)
|
||||
.Where(x => x.ClinicalDataSetName == indto.ClinicalDataSetName);
|
||||
|
||||
if (await existsQuery.AnyAsync())
|
||||
{
|
||||
return ResponseOutput.NotOk("存在同类型的临床数据,操作失败");
|
||||
}
|
||||
var entity = await _clinicalDataTrialSetRepository.InsertOrUpdateAsync(indto,true);
|
||||
return ResponseOutput.Ok(entity.Id.ToString());
|
||||
}
|
||||
|
@ -63,6 +71,15 @@ namespace IRaCIS.Application.Services
|
|||
[HttpPost]
|
||||
public async Task<IResponseOutput> AddOrUpdateClinicalDataSystemSet(ClinicalDataSystemSetAddOrEdit indto)
|
||||
{
|
||||
|
||||
var existsQuery = _clinicalDataSystemSetRepository
|
||||
.WhereIf(indto.Id != null, x => x.Id != indto.Id)
|
||||
.Where(x => x.ClinicalDataSetName == indto.ClinicalDataSetName);
|
||||
|
||||
if (await existsQuery.AnyAsync())
|
||||
{
|
||||
return ResponseOutput.NotOk("存在同类型的临床数据,操作失败");
|
||||
}
|
||||
var entity = await _clinicalDataSystemSetRepository.InsertOrUpdateAsync(indto, true);
|
||||
return ResponseOutput.Ok(entity.Id.ToString());
|
||||
}
|
||||
|
|
|
@ -154,6 +154,20 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public string Path { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class GetReadingOrTaskClinicalDataListInDto
|
||||
{
|
||||
[NotDefault]
|
||||
public Guid SubjectId { get; set; }
|
||||
|
||||
[NotDefault]
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
public Guid? ReadingId { get; set; }
|
||||
|
||||
public Guid? VisitTaskId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取访视列表
|
||||
/// </summary>
|
||||
|
|
|
@ -25,12 +25,15 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
private readonly IRepository<ReadingClinicalData> _readingClinicalDataRepository;
|
||||
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
|
||||
|
||||
|
||||
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||
private readonly IRepository<PreviousPDF> _previousPDFRepository;
|
||||
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||||
private readonly IRepository<PreviousHistory> _previousHistoryRepository;
|
||||
private readonly IRepository<PreviousOther> _previousOtherRepository;
|
||||
private readonly IRepository<PreviousSurgery> _previousSurgeryRepository;
|
||||
private readonly IRepository<Subject> _subjectRepository;
|
||||
private readonly IRepository<ReadModule> _readModuleRepository;
|
||||
private readonly IRepository<ReadingClinicalDataPDF> _readingClinicalDataPDFRepository;
|
||||
|
||||
public ReadingClinicalDataService(IRepository<ReadingClinicalData> readingClinicalDataRepository,
|
||||
|
@ -40,8 +43,10 @@ namespace IRaCIS.Application.Services
|
|||
IRepository<PreviousHistory> previousHistoryRepository,
|
||||
IRepository<PreviousOther> previousOtherRepository,
|
||||
IRepository<PreviousSurgery> previousSurgeryRepository,
|
||||
IRepository<ReadingClinicalDataPDF> readingClinicalDataPDFRepository
|
||||
)
|
||||
IRepository<Subject> subjectRepository,
|
||||
IRepository<ReadModule> readModuleRepository,
|
||||
IRepository<ReadingClinicalDataPDF> readingClinicalDataPDFRepository,
|
||||
IRepository<VisitTask> visitTaskRepository)
|
||||
{
|
||||
this._readingClinicalDataRepository = readingClinicalDataRepository;
|
||||
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
|
||||
|
@ -50,7 +55,10 @@ namespace IRaCIS.Application.Services
|
|||
this._previousHistoryRepository = previousHistoryRepository;
|
||||
this._previousOtherRepository = previousOtherRepository;
|
||||
this._previousSurgeryRepository = previousSurgeryRepository;
|
||||
this._subjectRepository = subjectRepository;
|
||||
this._readModuleRepository = readModuleRepository;
|
||||
this._readingClinicalDataPDFRepository = readingClinicalDataPDFRepository;
|
||||
this._visitTaskRepository = visitTaskRepository;
|
||||
}
|
||||
|
||||
|
||||
|
@ -276,6 +284,77 @@ namespace IRaCIS.Application.Services
|
|||
return ResponseOutput.Result(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取访视 阅片或任务临床数据
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<(List<GetReadingClinicalDataListOutDto>,object)> GetReadingOrTaskClinicalDataList(GetReadingOrTaskClinicalDataListInDto inDto)
|
||||
{
|
||||
var readingNameOrTaskBlindName = string.Empty;
|
||||
if (inDto.ReadingId == null)
|
||||
{
|
||||
var visitTask = await _visitTaskRepository.FirstOrDefaultAsync(x => x.Id == inDto.VisitTaskId);
|
||||
inDto.ReadingId = visitTask.SouceReadModuleId ?? visitTask.SourceSubjectVisitId;
|
||||
readingNameOrTaskBlindName = visitTask.TaskBlindName;
|
||||
}
|
||||
|
||||
if (readingNameOrTaskBlindName.IsNullOrEmpty())
|
||||
{
|
||||
readingNameOrTaskBlindName = await _subjectVisitRepository.Where(x => x.Id == inDto.ReadingId).Select(x => x.VisitName).FirstOrDefaultAsync();
|
||||
if (readingNameOrTaskBlindName.IsNullOrEmpty())
|
||||
{
|
||||
readingNameOrTaskBlindName = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId).Select(x => x.ModuleName).FirstOrDefaultAsync();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId)
|
||||
.Where(x => x.ReadingId == inDto.ReadingId||(x.SubjectId==inDto.SubjectId&&x.ClinicalDataTrialSet.ClinicalDataLevel==ClinicalLevel.Subject))
|
||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
||||
{
|
||||
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
||||
SubjectId = x.SubjectId,
|
||||
ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName,
|
||||
ClinicalDataTrialSetId = x.ClinicalDataTrialSetId,
|
||||
IsSign = x.IsSign,
|
||||
ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
|
||||
Id = x.Id,
|
||||
UploadRole = x.ClinicalDataTrialSet.UploadRole,
|
||||
IsCRCUpload = x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC,
|
||||
FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
||||
{
|
||||
Id = y.Id,
|
||||
FileName = y.FileName,
|
||||
Path = y.Path,
|
||||
CreateTime = y.CreateTime,
|
||||
}).ToList()
|
||||
});
|
||||
|
||||
|
||||
var result = await resultQuery.ToListAsync();
|
||||
result = result.Where(x => !(x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.PDF && x.FileList.Count() == 0)).ToList();
|
||||
|
||||
var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo<PreviousHistoryView>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
var previousOtherList = await _previousOtherRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo<PreviousOtherView>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
var previousSurgeryList = await _previousSurgeryRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo<PreviousSurgeryView>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
foreach (var item in result)
|
||||
{
|
||||
item.ClinicalTableData = new ClinicalDataTable()
|
||||
{
|
||||
PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
|
||||
PreviousOtherList = previousOtherList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
|
||||
PreviousSurgeryList = previousSurgeryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
return (result, new
|
||||
{
|
||||
SubjectCode = await _subjectRepository.Where(x => x.Id == inDto.SubjectId).Select(x => x.Code).FirstOrDefaultAsync(),
|
||||
ReadingNameOrTaskBlindName = readingNameOrTaskBlindName,
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取阅片临床数据列表
|
||||
|
|
Loading…
Reference in New Issue