xiu
parent
d639afb8a0
commit
2281c50747
|
@ -51,6 +51,14 @@ namespace IRaCIS.Application.Services
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IResponseOutput> AddOrUpdateClinicalDataTrialSet(ClinicalDataTrialSetAddOrEdit indto)
|
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);
|
var entity = await _clinicalDataTrialSetRepository.InsertOrUpdateAsync(indto,true);
|
||||||
return ResponseOutput.Ok(entity.Id.ToString());
|
return ResponseOutput.Ok(entity.Id.ToString());
|
||||||
}
|
}
|
||||||
|
@ -63,6 +71,15 @@ namespace IRaCIS.Application.Services
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IResponseOutput> AddOrUpdateClinicalDataSystemSet(ClinicalDataSystemSetAddOrEdit indto)
|
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);
|
var entity = await _clinicalDataSystemSetRepository.InsertOrUpdateAsync(indto, true);
|
||||||
return ResponseOutput.Ok(entity.Id.ToString());
|
return ResponseOutput.Ok(entity.Id.ToString());
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,6 +154,20 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
public string Path { get; set; }
|
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>
|
||||||
/// 获取访视列表
|
/// 获取访视列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -26,11 +26,14 @@ namespace IRaCIS.Application.Services
|
||||||
private readonly IRepository<ReadingClinicalData> _readingClinicalDataRepository;
|
private readonly IRepository<ReadingClinicalData> _readingClinicalDataRepository;
|
||||||
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
|
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
|
||||||
|
|
||||||
|
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||||
private readonly IRepository<PreviousPDF> _previousPDFRepository;
|
private readonly IRepository<PreviousPDF> _previousPDFRepository;
|
||||||
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||||||
private readonly IRepository<PreviousHistory> _previousHistoryRepository;
|
private readonly IRepository<PreviousHistory> _previousHistoryRepository;
|
||||||
private readonly IRepository<PreviousOther> _previousOtherRepository;
|
private readonly IRepository<PreviousOther> _previousOtherRepository;
|
||||||
private readonly IRepository<PreviousSurgery> _previousSurgeryRepository;
|
private readonly IRepository<PreviousSurgery> _previousSurgeryRepository;
|
||||||
|
private readonly IRepository<Subject> _subjectRepository;
|
||||||
|
private readonly IRepository<ReadModule> _readModuleRepository;
|
||||||
private readonly IRepository<ReadingClinicalDataPDF> _readingClinicalDataPDFRepository;
|
private readonly IRepository<ReadingClinicalDataPDF> _readingClinicalDataPDFRepository;
|
||||||
|
|
||||||
public ReadingClinicalDataService(IRepository<ReadingClinicalData> readingClinicalDataRepository,
|
public ReadingClinicalDataService(IRepository<ReadingClinicalData> readingClinicalDataRepository,
|
||||||
|
@ -40,8 +43,10 @@ namespace IRaCIS.Application.Services
|
||||||
IRepository<PreviousHistory> previousHistoryRepository,
|
IRepository<PreviousHistory> previousHistoryRepository,
|
||||||
IRepository<PreviousOther> previousOtherRepository,
|
IRepository<PreviousOther> previousOtherRepository,
|
||||||
IRepository<PreviousSurgery> previousSurgeryRepository,
|
IRepository<PreviousSurgery> previousSurgeryRepository,
|
||||||
IRepository<ReadingClinicalDataPDF> readingClinicalDataPDFRepository
|
IRepository<Subject> subjectRepository,
|
||||||
)
|
IRepository<ReadModule> readModuleRepository,
|
||||||
|
IRepository<ReadingClinicalDataPDF> readingClinicalDataPDFRepository,
|
||||||
|
IRepository<VisitTask> visitTaskRepository)
|
||||||
{
|
{
|
||||||
this._readingClinicalDataRepository = readingClinicalDataRepository;
|
this._readingClinicalDataRepository = readingClinicalDataRepository;
|
||||||
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
|
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
|
||||||
|
@ -50,7 +55,10 @@ namespace IRaCIS.Application.Services
|
||||||
this._previousHistoryRepository = previousHistoryRepository;
|
this._previousHistoryRepository = previousHistoryRepository;
|
||||||
this._previousOtherRepository = previousOtherRepository;
|
this._previousOtherRepository = previousOtherRepository;
|
||||||
this._previousSurgeryRepository = previousSurgeryRepository;
|
this._previousSurgeryRepository = previousSurgeryRepository;
|
||||||
|
this._subjectRepository = subjectRepository;
|
||||||
|
this._readModuleRepository = readModuleRepository;
|
||||||
this._readingClinicalDataPDFRepository = readingClinicalDataPDFRepository;
|
this._readingClinicalDataPDFRepository = readingClinicalDataPDFRepository;
|
||||||
|
this._visitTaskRepository = visitTaskRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -276,6 +284,77 @@ namespace IRaCIS.Application.Services
|
||||||
return ResponseOutput.Result(result);
|
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>
|
/// <summary>
|
||||||
/// 获取阅片临床数据列表
|
/// 获取阅片临床数据列表
|
||||||
|
|
Loading…
Reference in New Issue