Uat_Study
parent
d49640de70
commit
506a66cbfb
|
@ -7017,6 +7017,13 @@
|
|||
<param name="param"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Image.QA.QCListService.GetDicomAndNoneDicomStudyList_Export(IRaCIS.Core.Application.Contracts.StudyQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService)">
|
||||
<summary>
|
||||
一致性核查表
|
||||
</summary>
|
||||
<param name="studyQuery"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Image.QA.QCListService.GetCRCVisitList(IRaCIS.Core.Application.Contracts.CRCVisitSearchDTO)">
|
||||
<summary>
|
||||
CRC 访视上传列表
|
||||
|
|
|
@ -102,7 +102,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
|
||||
|
||||
var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == querySubjectAssign.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder, x.ReadingType,x.IsArbitrationReading,x.IsOncologyReading }).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == querySubjectAssign.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder, x.ReadingType,x.IsArbitrationReading,x.IsOncologyReading ,x.IsGlobalReading}).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
return (pageList, criterionConfig);
|
||||
}
|
||||
|
|
|
@ -322,6 +322,34 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
|
||||
|
||||
}
|
||||
|
||||
public class UnionStudyExportDTO
|
||||
{
|
||||
|
||||
public string Modalities { get; set; } = string.Empty;
|
||||
|
||||
|
||||
public DateTime? StudyTime { get; set; }
|
||||
|
||||
public string SubjectCode { get; set; } = String.Empty;
|
||||
|
||||
public string VisitName { get; set; } = string.Empty;
|
||||
|
||||
public decimal VisitNum { get; set; }
|
||||
|
||||
public string TrialSiteCode { get; set; } = string.Empty;
|
||||
|
||||
public string TrialSiteAliasName { get; set; } = string.Empty;
|
||||
|
||||
//public string Uploader { get; set; } = string.Empty;
|
||||
|
||||
//public DateTime UploadTime { get; set; }
|
||||
|
||||
public string StudyCode { get; set; }
|
||||
|
||||
[DictionaryTranslateAttribute("YesOrNo")]
|
||||
public bool IsDicom { get; set; }
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
|
|
@ -174,10 +174,89 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
|
||||
exportInfo.List = list;
|
||||
|
||||
return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(ReadPeriodExportDto));
|
||||
return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectReadingPeriodList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(ReadPeriodExportDto));
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 一致性核查表
|
||||
/// </summary>
|
||||
/// <param name="studyQuery"></param>
|
||||
/// <returns></returns>
|
||||
|
||||
[HttpPost]
|
||||
public async Task<IActionResult> GetDicomAndNoneDicomStudyList_Export(StudyQuery studyQuery,
|
||||
[FromServices] IRepository<CommonDocument> _commonDocumentRepository,
|
||||
[FromServices] IDictionaryService _dictionaryService)
|
||||
{
|
||||
|
||||
var svExpression = QCCommon.GetDicomStudySubjectVisitFilter(studyQuery.VisitPlanArray);
|
||||
|
||||
var dicomStudyQuery = _repository.Where<DicomStudy>(t => t.TrialId == studyQuery.TrialId)
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
|
||||
.WhereIf(studyQuery.VisitPlanArray != null && studyQuery.VisitPlanArray?.Length > 0, svExpression)
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(studyQuery.SubjectInfo), t => t.Subject.Code.Contains(studyQuery.SubjectInfo))
|
||||
.Select(t => new UnionStudyExportDTO()
|
||||
{
|
||||
VisitName = t.SubjectVisit.VisitName,
|
||||
VisitNum = t.SubjectVisit.VisitNum,
|
||||
IsDicom = true,
|
||||
SubjectCode = t.Subject.Code,
|
||||
Modalities = t.Modalities,
|
||||
StudyCode = t.StudyCode,
|
||||
StudyTime = t.StudyTime,
|
||||
|
||||
TrialSiteAliasName = t.TrialSite.TrialSiteAliasName,
|
||||
|
||||
TrialSiteCode = t.TrialSite.TrialSiteCode,
|
||||
|
||||
//Uploader = t.Uploader.UserName,
|
||||
//UploadTime = t.CreateTime
|
||||
|
||||
});
|
||||
|
||||
var svExpression2 = QCCommon.GetNoneDicomStudySubjectVisitFilter(studyQuery.VisitPlanArray);
|
||||
|
||||
|
||||
var nodeDicomStudyQuery = _repository.Where<NoneDicomStudy>(t => t.TrialId == studyQuery.TrialId)
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
|
||||
.WhereIf(studyQuery.VisitPlanArray != null && studyQuery.VisitPlanArray?.Length > 0, svExpression2)
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(studyQuery.SubjectInfo), t => t.Subject.Code.Contains(studyQuery.SubjectInfo))
|
||||
|
||||
.Select(t => new UnionStudyExportDTO()
|
||||
{
|
||||
|
||||
VisitName = t.SubjectVisit.VisitName,
|
||||
VisitNum = t.SubjectVisit.VisitNum,
|
||||
IsDicom = false,
|
||||
SubjectCode = t.Subject.Code,
|
||||
Modalities = t.Modality,
|
||||
StudyCode = t.StudyCode,
|
||||
StudyTime = t.ImageDate,
|
||||
|
||||
TrialSiteAliasName = t.TrialSite.TrialSiteAliasName,
|
||||
|
||||
TrialSiteCode = t.TrialSite.TrialSiteCode,
|
||||
|
||||
//Uploader = t.CreateUser.UserName,
|
||||
//UploadTime = t.CreateTime
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
var list = await dicomStudyQuery.Union(nodeDicomStudyQuery)
|
||||
.ToListAsync();
|
||||
|
||||
var exportInfo = (await _trialRepository.Where(t => t.Id == studyQuery.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
exportInfo.List = list;
|
||||
|
||||
return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialStudyList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(UnionStudyExportDTO));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -128,6 +128,12 @@ public static class StaticData
|
|||
public const string TrialQCImageChanllengeList_Export = "TrialQCImageChanllengeList_Export";
|
||||
|
||||
public const string TrialSubjectList_Export = "TrialSubjectList_Export";
|
||||
|
||||
public const string TrialSubjectReadingPeriodList_Export = "TrialSubjectReadingPeriodList_Export";
|
||||
|
||||
public const string TrialStudyList_Export = "TrialStudyList_Export";
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue