diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index e51bf5247..3e9cfbdce 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -852,6 +852,13 @@
后台托管服务的方式运行
+
+
+ 上传临床数据
+
+
+
+
指定资源Id,渲染Dicom检查的Jpeg预览图像
Dicom检查的Id
@@ -3200,6 +3207,20 @@
+
+
+ 删除检查级别临床数据
+
+
+
+
+
+
+ 添加检查级别临床数据
+
+
+
+
自动添加CRC临床数据 (不包括检查级别)
diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
index 44442d108..93ab00eea 100644
--- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
+++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
@@ -1235,15 +1235,12 @@ namespace IRaCIS.Core.Application.Image.QA
#region 验证临床数据 是否有Pet类型
foreach (var item in cRCRequestToQCCommand.SubjectVisitIds)
{
- if (await _dicomStudyRepository.AnyAsync(x => x.SubjectVisitId == item && x.Modalities.Contains("PT")))
+ if (await _dicomStudyRepository.AnyAsync(x => x.SubjectVisitId == item && (x.ModalityForEdit.Contains("PT")&& x.ModalityForEdit.Contains("CT"))))
{
var visit = await _subjectVisitRepository.Where(x => x.Id == item).FirstNotNullAsync();
- var clinicalData = await this._readingClinicalDataService.GetCRCClinicalData(new Service.Reading.Dto.GetCRCClinicalDataInDto()
+ var clinicalData = await this._readingClinicalDataService.GetStudyClinicalData(new Service.Reading.Dto.GetStudyClinicalDataInDto()
{
- IsBaseline = visit.IsBaseLine,
- SubjectId = visit.SubjectId,
SubjectVisitId = item,
- TrialId = cRCRequestToQCCommand.TrialId,
});
if (clinicalData.Any(x => x.ClinicalDataLevel == ClinicalLevel.Study && x.ClinicalUploadType == ClinicalUploadType.PDF && x.PDFFileList.Count() == 0))
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs
index 920e01a7d..42db932d7 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs
@@ -179,6 +179,59 @@ namespace IRaCIS.Application.Services
#region 临床数据CRC 相关
+ ///
+ /// 获取检查类型临床数据
+ ///
+ ///
+ ///
+ public async Task> GetStudyClinicalData(GetStudyClinicalDataInDto inDto)
+ {
+
+ var cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId)
+ .Where(x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Study).Select(x => new GetCRCClinicalDataOutDto()
+ {
+ Id = x.Id,
+ ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us),
+ ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
+ ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
+ ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName,
+ ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
+ FileName = x.ClinicalDataTrialSet.FileName,
+ UploadRole = x.ClinicalDataTrialSet.UploadRole,
+ Path = x.ClinicalDataTrialSet.Path,
+ IsBlind = x.IsBlind,
+ IsComplete = x.IsComplete,
+ ClinicalFromList = x.Subject.ClinicalFormList.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
+ {
+ CheckDate = y.CheckDate,
+ ClinicalFormId = y.Id
+ }).ToList(),
+ PDFFileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
+ {
+ Id = y.Id,
+ FileName = y.FileName,
+ Path = y.Path,
+ CreateTime = y.CreateTime,
+ }).ToList(),
+
+ }).ToListAsync();
+
+ var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+ var previousOtherList = await _previousOtherRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+ var previousSurgeryList = await _previousSurgeryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+
+ foreach (var item in cRCClinicalDataList)
+ {
+ 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 cRCClinicalDataList;
+ }
///
/// 获取CRC上传的文件
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
index a3f213303..18dd09e8a 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
@@ -141,7 +141,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
}
-
+ public class GetStudyClinicalDataInDto
+ {
+ public Guid SubjectVisitId { get; set; }
+ }
public class GetCRCClinicalDataInDto
{
diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs
index 82c175fb6..ccbbc510e 100644
--- a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs
@@ -24,7 +24,9 @@ namespace IRaCIS.Core.Application.Contracts
Task> GetReadingClinicalList(GetReadingClinicalDataListIndto inDto);
- Task> GetCRCClinicalData(GetCRCClinicalDataInDto inDto);
+ Task> GetStudyClinicalData(GetStudyClinicalDataInDto inDto);
+
+ Task> GetCRCClinicalData(GetCRCClinicalDataInDto inDto);
Task DealVisiTaskClinicalDataSignedAsync(Guid trialId, Guid subjectId, Guid readingId, bool isVisit, Guid trialReadingCritrialId);
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index e6761b1d1..5dfa15cdb 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -1947,7 +1947,7 @@ namespace IRaCIS.Application.Services
}
- await _readingTableAnswerRowInfoRepository.BatchUpdateNoTrackingAsync(x => x.Id == inDto.RowId, x => new ReadingTableAnswerRowInfo()
+ await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.RowId, x => new ReadingTableAnswerRowInfo()
{
IsDeleted = true