修改导表
parent
fad9428656
commit
ab61372e33
|
@ -17,6 +17,7 @@ namespace IRaCIS.Core.API
|
||||||
{
|
{
|
||||||
public static void AddSwaggerSetup(this IServiceCollection services)
|
public static void AddSwaggerSetup(this IServiceCollection services)
|
||||||
{
|
{
|
||||||
|
services.AddEndpointsApiExplorer();
|
||||||
|
|
||||||
services.AddSwaggerGen(options =>
|
services.AddSwaggerGen(options =>
|
||||||
{
|
{
|
||||||
|
|
|
@ -846,16 +846,6 @@
|
||||||
<param name="_trialRepository"></param>
|
<param name="_trialRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Common.ExcelExportService.GetCommonEvaluationDetailList_Export(IRaCIS.Core.Application.ViewModel.VisitTaskQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
|
||||||
<summary>
|
|
||||||
阅片结果明细表
|
|
||||||
</summary>
|
|
||||||
<param name="inQuery"></param>
|
|
||||||
<param name="_commonDocumentRepository"></param>
|
|
||||||
<param name="_dictionaryService"></param>
|
|
||||||
<param name="_trialRepository"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="T:IRaCIS.Core.Application.Service.DictionaryService">
|
<member name="T:IRaCIS.Core.Application.Service.DictionaryService">
|
||||||
<summary>
|
<summary>
|
||||||
数据字典-基础数据维护
|
数据字典-基础数据维护
|
||||||
|
|
|
@ -463,12 +463,21 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
public bool? IsEffect { get; set; }
|
public bool? IsEffect { get; set; }
|
||||||
|
|
||||||
public string? RequestReReadingReason { get; set; }
|
public string? RequestReReadingReason { get; set; }
|
||||||
|
|
||||||
|
public ReadingExportType? ReadingExportType { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public enum ReadingExportType
|
||||||
|
{
|
||||||
|
ReadingResult=0,
|
||||||
|
|
||||||
|
ReadingDetailResult=1,
|
||||||
|
|
||||||
|
JudgeReadingDetailResult=2
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2044,7 +2044,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstNotNullAsync();
|
var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstNotNullAsync();
|
||||||
|
|
||||||
|
|
||||||
var list = await _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect)
|
var list = await _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId && t.IsAnalysisCreate == false && (t.TaskState == TaskState.Effect && t.TaskState==TaskState.Freeze))
|
||||||
|
|
||||||
//访视和全局查询已签名完成的,裁判可以是未签名,未完成的
|
//访视和全局查询已签名完成的,裁判可以是未签名,未完成的
|
||||||
.Where(t => (t.ReadingTaskState == ReadingTaskState.HaveSigned && (t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Global)) || (t.ReadingCategory == ReadingCategory.Judge))
|
.Where(t => (t.ReadingTaskState == ReadingTaskState.HaveSigned && (t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Global)) || (t.ReadingCategory == ReadingCategory.Judge))
|
||||||
|
@ -2066,10 +2066,19 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.Subject.Code.Contains(inQuery.SubjectCode))
|
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.Subject.Code.Contains(inQuery.SubjectCode))
|
||||||
.WhereIf(inQuery.BeginAllocateDate != null, t => t.AllocateTime > inQuery.BeginAllocateDate)
|
.WhereIf(inQuery.BeginAllocateDate != null, t => t.AllocateTime > inQuery.BeginAllocateDate)
|
||||||
.WhereIf(inQuery.EndAllocateDate != null, t => t.AllocateTime < inQuery.EndAllocateDate!.Value.AddDays(1))
|
.WhereIf(inQuery.EndAllocateDate != null, t => t.AllocateTime < inQuery.EndAllocateDate!.Value.AddDays(1))
|
||||||
.ProjectTo<CommonEvaluationExport>(_mapper.ConfigurationProvider, new { criterionType = criterion.CriterionType, arbitrationRule = criterion.ArbitrationRule, trialReadingCriterionId = inQuery.TrialReadingCriterionId, isEn_Us = _userInfo.IsEn_Us }).ToListAsync();
|
.ProjectTo<CommonEvaluationExport>(_mapper.ConfigurationProvider, new { readingExportType=inQuery.ReadingExportType, criterionType = criterion.CriterionType, arbitrationRule = criterion.ArbitrationRule, trialReadingCriterionId = inQuery.TrialReadingCriterionId, isEn_Us = _userInfo.IsEn_Us }).ToListAsync();
|
||||||
|
|
||||||
list = list.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum).ToList();
|
list = list.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum).ToList();
|
||||||
|
|
||||||
|
if (inQuery.ReadingExportType == ReadingExportType.JudgeReadingDetailResult)
|
||||||
|
{
|
||||||
|
//R1 R2 两个人的访视都阅片完成了才可以,去除只有一个人阅片完成的访视
|
||||||
|
|
||||||
|
//找到只有一个人阅片的受试者 和访视
|
||||||
|
var exceptVisit = list.GroupBy(t => new { t.SubjectCode, t.TaskName }).Where(g => g.Count() == 1).Select(g => new { g.Key.SubjectCode, g.Key.TaskName }).ToList();
|
||||||
|
list = list.Where(t => !exceptVisit.Any(ev => ev.SubjectCode == t.SubjectCode && ev.TaskName == t.TaskName)).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
var exportInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
var exportInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
exportInfo.CriterionName = criterion.CriterionName;
|
exportInfo.CriterionName = criterion.CriterionName;
|
||||||
|
|
||||||
|
@ -2083,58 +2092,15 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
TempalteLastColumnIndex = 8,
|
TempalteLastColumnIndex = 8,
|
||||||
DynamicItemDicName = "TranslateDicName",
|
DynamicItemDicName = "TranslateDicName",
|
||||||
DynamicItemValueName = "QuestionValue",
|
DynamicItemValueName = "QuestionValue",
|
||||||
DynamicListName = "JudgeQuestionAnswerList",
|
DynamicListName = "QuestionAnswerList",
|
||||||
RemoveColunmIndexList = new List<int>() { 1, 7 },
|
RemoveColunmIndexList = new List<int>() { 1, 7 },
|
||||||
ColumnNameList = list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.QuestionName).ToList() ?? new List<string>(),
|
ColumnNameList = list.FirstOrDefault()?.QuestionAnswerList.Select(t => t.QuestionName).ToList() ?? new List<string>(),
|
||||||
TranslateDicNameList = list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.TranslateDicName).ToList() ?? new List<string>()
|
TranslateDicNameList = list.FirstOrDefault()?.QuestionAnswerList.Select(t => t.TranslateDicName).ToList() ?? new List<string>()
|
||||||
};
|
};
|
||||||
|
|
||||||
var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(StaticData.Export.CommonReading_Export, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig);
|
var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(StaticData.Export.CommonReading_Export, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig);
|
||||||
|
|
||||||
|
|
||||||
#region 废弃
|
|
||||||
//var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US;
|
|
||||||
//var dynamicTranslateDataList = await _dictionaryService.GetBasicDataSelect(list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.JudgeTranslateDicName).Distinct().ToArray());
|
|
||||||
|
|
||||||
|
|
||||||
//// 使用NPOI 进行二次处理
|
|
||||||
//var wb = new XSSFWorkbook(memoryStream);
|
|
||||||
|
|
||||||
//var sheet = wb.GetSheetAt(0);
|
|
||||||
|
|
||||||
//foreach (var itemResult in list)
|
|
||||||
//{
|
|
||||||
// var index = list.IndexOf(itemResult);
|
|
||||||
|
|
||||||
// //从第四行开始处理动态列
|
|
||||||
// var row = sheet.GetRow(index + 3);
|
|
||||||
|
|
||||||
// foreach (var item in itemResult.JudgeQuestionAnswerList)
|
|
||||||
// {
|
|
||||||
// var writeIndex = itemResult.JudgeQuestionAnswerList.IndexOf(item) + dynamicColumnConfig.AutoColumnStartIndex;
|
|
||||||
|
|
||||||
|
|
||||||
// if (item.JudgeTranslateDicName.IsNotNullOrEmpty())
|
|
||||||
// {
|
|
||||||
|
|
||||||
// var translateData = dynamicTranslateDataList[item.JudgeTranslateDicName].Where(t => t.Code.ToLower() == item.JudgeQuestionValue?.ToLower()).Select(t => isEn_US ? t.Value : t.ValueCN).FirstOrDefault() ?? String.Empty;
|
|
||||||
|
|
||||||
// row.GetCell(writeIndex).SetCellValue(translateData);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// row.GetCell(writeIndex).SetCellValue(item.JudgeQuestionValue);
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
//var memoryStream2 = new MemoryStream();
|
|
||||||
//wb.Write(memoryStream2, true);
|
|
||||||
//memoryStream2.Seek(0, SeekOrigin.Begin);
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
||||||
{
|
{
|
||||||
FileDownloadName = $"{exportInfo.ResearchProgramNo}_{exportInfo.CriterionName}_{fileName}_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx"
|
FileDownloadName = $"{exportInfo.ResearchProgramNo}_{exportInfo.CriterionName}_{fileName}_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx"
|
||||||
|
@ -2185,74 +2151,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
list = list.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum).ToList();
|
list = list.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum).ToList();
|
||||||
|
|
||||||
//R1 R2 两个人的访视都阅片完成了才可以,去除只有一个人阅片完成的访视
|
|
||||||
|
|
||||||
//找到只有一个人阅片的受试者 和访视
|
|
||||||
var exceptVisit = list.GroupBy(t => new { t.SubjectCode, t.TaskName }).Where(g => g.Count() == 1).Select(g => new { g.Key.SubjectCode, g.Key.TaskName }).ToList();
|
|
||||||
list = list.Where(t => !exceptVisit.Any(ev => ev.SubjectCode == t.SubjectCode && ev.TaskName == t.TaskName)).ToList();
|
|
||||||
|
|
||||||
var exportInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
|
||||||
exportInfo.CriterionName = criterion.CriterionName;
|
|
||||||
|
|
||||||
//处理裁判标记
|
|
||||||
list = DealJudgeMark(criterion.ArbitrationRule, list);
|
|
||||||
|
|
||||||
exportInfo.List = ExportExcelConverterDate.ConvertToClientTimeInObject(list.Where(t => t.ReadingCategory != ReadingCategory.Global).ToList(), _userInfo.TimeZoneId);
|
|
||||||
exportInfo.CurrentTime = ExportExcelConverterDate.DateTimeInternationalToString(DateTime.Now, _userInfo.TimeZoneId);
|
|
||||||
|
|
||||||
var dynamicColumnConfig = new DynamicColumnConfig() { AutoColumnTitleRowIndex = 2, AutoColumnStartIndex = 6, ColumnNameList = list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.QuestionName).ToList() };
|
|
||||||
|
|
||||||
var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(StaticData.Export.CommonJudgeReadingDetail_Export, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig);
|
|
||||||
|
|
||||||
|
|
||||||
return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
|
||||||
{
|
|
||||||
FileDownloadName = $"{exportInfo.ResearchProgramNo}_{exportInfo.CriterionName}_{fileName}_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx"
|
|
||||||
};
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// 阅片结果明细表
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="inQuery"></param>
|
|
||||||
/// <param name="_commonDocumentRepository"></param>
|
|
||||||
/// <param name="_dictionaryService"></param>
|
|
||||||
/// <param name="_trialRepository"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost]
|
|
||||||
public async Task<IActionResult> GetCommonEvaluationDetailList_Export(VisitTaskQuery inQuery,
|
|
||||||
[FromServices] IRepository<CommonDocument> _commonDocumentRepository,
|
|
||||||
[FromServices] IDictionaryService _dictionaryService,
|
|
||||||
[FromServices] IRepository<Trial> _trialRepository)
|
|
||||||
{
|
|
||||||
//每次查询必须是单标准的
|
|
||||||
var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstNotNullAsync();
|
|
||||||
|
|
||||||
|
|
||||||
var list = await _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect)
|
|
||||||
|
|
||||||
//访视和全局查询已签名完成的,裁判可以是未签名,未完成的
|
|
||||||
.Where(t => (t.ReadingTaskState == ReadingTaskState.HaveSigned && (t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Global)) || (t.ReadingCategory == ReadingCategory.Judge))
|
|
||||||
//.WhereIf(inQuery.SubjectId != null, t => t.SubjectId == inQuery.SubjectId)
|
|
||||||
//.WhereIf(inQuery.TaskState != null, t => t.TaskState == inQuery.TaskState)
|
|
||||||
//.WhereIf(inQuery.IsSelfAnalysis != null, t => t.IsSelfAnalysis == inQuery.IsSelfAnalysis)
|
|
||||||
|
|
||||||
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
|
|
||||||
.WhereIf(inQuery.TrialSiteId != null, t => t.Subject.TrialSiteId == inQuery.TrialSiteId)
|
|
||||||
|
|
||||||
.WhereIf(inQuery.IsUrgent != null, t => t.IsUrgent == inQuery.IsUrgent)
|
|
||||||
.WhereIf(inQuery.DoctorUserId != null, t => t.DoctorUserId == inQuery.DoctorUserId)
|
|
||||||
.WhereIf(inQuery.ReadingCategory != null, t => t.ReadingCategory == inQuery.ReadingCategory)
|
|
||||||
.WhereIf(inQuery.ReadingTaskState != null, t => t.ReadingTaskState == inQuery.ReadingTaskState)
|
|
||||||
.WhereIf(inQuery.TaskAllocationState != null, t => t.TaskAllocationState == inQuery.TaskAllocationState)
|
|
||||||
.WhereIf(inQuery.ArmEnum != null, t => t.ArmEnum == inQuery.ArmEnum)
|
|
||||||
.WhereIf(!string.IsNullOrEmpty(inQuery.TrialSiteCode), t => (t.BlindTrialSiteCode.Contains(inQuery.TrialSiteCode!) && t.IsAnalysisCreate) || (t.Subject.TrialSite.TrialSiteCode.Contains(inQuery.TrialSiteCode!) && t.IsAnalysisCreate == false))
|
|
||||||
.WhereIf(!string.IsNullOrEmpty(inQuery.TaskName), t => t.TaskName.Contains(inQuery.TaskName) || t.TaskBlindName.Contains(inQuery.TaskName))
|
|
||||||
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.Subject.Code.Contains(inQuery.SubjectCode))
|
|
||||||
.WhereIf(inQuery.BeginAllocateDate != null, t => t.AllocateTime > inQuery.BeginAllocateDate)
|
|
||||||
.WhereIf(inQuery.EndAllocateDate != null, t => t.AllocateTime < inQuery.EndAllocateDate!.Value.AddDays(1))
|
|
||||||
.ProjectTo<CommonEvaluationDetailExport>(_mapper.ConfigurationProvider, new { criterionType = criterion.CriterionType, arbitrationRule = criterion.ArbitrationRule, trialReadingCriterionId = inQuery.TrialReadingCriterionId, isEn_Us = _userInfo.IsEn_Us }).ToListAsync();
|
|
||||||
|
|
||||||
list = list.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum).ToList();
|
|
||||||
|
|
||||||
var exportInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
var exportInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
exportInfo.CriterionName = criterion.CriterionName;
|
exportInfo.CriterionName = criterion.CriterionName;
|
||||||
|
@ -2265,7 +2164,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
var dynamicColumnConfig = new DynamicColumnConfig() { AutoColumnTitleRowIndex = 2, AutoColumnStartIndex = 6, ColumnNameList = list.FirstOrDefault()?.QuestionAnswerList.Select(t => t.QuestionName).ToList() };
|
var dynamicColumnConfig = new DynamicColumnConfig() { AutoColumnTitleRowIndex = 2, AutoColumnStartIndex = 6, ColumnNameList = list.FirstOrDefault()?.QuestionAnswerList.Select(t => t.QuestionName).ToList() };
|
||||||
|
|
||||||
var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(StaticData.Export.CommonReadingDetail_Export, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig);
|
var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(StaticData.Export.CommonJudgeReadingDetail_Export, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig);
|
||||||
|
|
||||||
|
|
||||||
return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
||||||
|
@ -2275,6 +2174,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IActionResult> GetCommonJudgeRatioList_Export(VisitTaskQuery inQuery,
|
public async Task<IActionResult> GetCommonJudgeRatioList_Export(VisitTaskQuery inQuery,
|
||||||
[FromServices] IRepository<CommonDocument> _commonDocumentRepository,
|
[FromServices] IRepository<CommonDocument> _commonDocumentRepository,
|
||||||
|
|
|
@ -1068,11 +1068,6 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public string TranslateDicName { get; set; }
|
public string TranslateDicName { get; set; }
|
||||||
}
|
}
|
||||||
public class CommonEvaluationExport : OverallTumorEvaluationExport
|
public class CommonEvaluationExport : OverallTumorEvaluationExport
|
||||||
{
|
|
||||||
public List<CommonQuesionInfo> JudgeQuestionAnswerList { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class CommonEvaluationDetailExport : OverallTumorEvaluationExport
|
|
||||||
{
|
{
|
||||||
public List<CommonQuesionInfo> QuestionAnswerList { get; set; }
|
public List<CommonQuesionInfo> QuestionAnswerList { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ using IRaCIS.Application.Contracts;
|
||||||
using IRaCIS.Core.Application.Contracts;
|
using IRaCIS.Core.Application.Contracts;
|
||||||
using IRaCIS.Core.Application.Contracts.DTO;
|
using IRaCIS.Core.Application.Contracts.DTO;
|
||||||
using IRaCIS.Core.Application.MassTransit.Command;
|
using IRaCIS.Core.Application.MassTransit.Command;
|
||||||
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Service
|
namespace IRaCIS.Core.Application.Service
|
||||||
|
@ -198,6 +199,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
Guid trialReadingCriterionId = Guid.Empty;
|
Guid trialReadingCriterionId = Guid.Empty;
|
||||||
ArbitrationRule? arbitrationRule = null;
|
ArbitrationRule? arbitrationRule = null;
|
||||||
CriterionType? criterionType = null;
|
CriterionType? criterionType = null;
|
||||||
|
ReadingExportType? readingExportType=null;
|
||||||
|
|
||||||
CreateMap<VisitTask, OverallTumorEvaluationExport>()
|
CreateMap<VisitTask, OverallTumorEvaluationExport>()
|
||||||
// .ForMember(o => o.TrialReadingCriterionName, t => t.MapFrom(u => u.TrialReadingCriterion.CriterionName))
|
// .ForMember(o => o.TrialReadingCriterionName, t => t.MapFrom(u => u.TrialReadingCriterion.CriterionName))
|
||||||
.ForMember(o => o.IsBaseline, t => t.MapFrom(u => u.SourceSubjectVisit.IsBaseLine))
|
.ForMember(o => o.IsBaseline, t => t.MapFrom(u => u.SourceSubjectVisit.IsBaseLine))
|
||||||
|
@ -223,6 +226,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
||||||
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName));
|
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CreateMap<VisitTask, CommonEvaluationExport>()
|
CreateMap<VisitTask, CommonEvaluationExport>()
|
||||||
.ForMember(o => o.IsBaseline, t => t.MapFrom(u => u.SourceSubjectVisit.IsBaseLine))
|
.ForMember(o => o.IsBaseline, t => t.MapFrom(u => u.SourceSubjectVisit.IsBaseLine))
|
||||||
|
@ -236,7 +240,9 @@ namespace IRaCIS.Core.Application.Service
|
||||||
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
||||||
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
||||||
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
||||||
.ForMember(o => o.JudgeQuestionAnswerList, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.IsJudgeQuestion).OrderBy(k => k.ReadingQuestionTrial.ShowOrder)
|
.ForMember(o => o.QuestionAnswerList, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList
|
||||||
|
.Where(c => readingExportType == ReadingExportType.ReadingDetailResult ? c.ReadingQuestionTrial.IsJudgeQuestion : c.ReadingQuestionTrial.IsJudgeQuestion)
|
||||||
|
.OrderBy(k => k.ReadingQuestionTrial.ShowOrder)
|
||||||
.Select(c => new CommonQuesionInfo()
|
.Select(c => new CommonQuesionInfo()
|
||||||
{
|
{
|
||||||
QuestionName = isEn_Us ? c.ReadingQuestionTrial.QuestionEnName : c.ReadingQuestionTrial.QuestionName,
|
QuestionName = isEn_Us ? c.ReadingQuestionTrial.QuestionEnName : c.ReadingQuestionTrial.QuestionName,
|
||||||
|
@ -244,27 +250,6 @@ namespace IRaCIS.Core.Application.Service
|
||||||
TranslateDicName = c.ReadingQuestionTrial.DictionaryCode
|
TranslateDicName = c.ReadingQuestionTrial.DictionaryCode
|
||||||
})));
|
})));
|
||||||
|
|
||||||
CreateMap<VisitTask, CommonEvaluationDetailExport>()
|
|
||||||
.ForMember(o => o.IsBaseline, t => t.MapFrom(u => u.SourceSubjectVisit.IsBaseLine))
|
|
||||||
.ForMember(o => o.JudgeArmEnum, t => t.MapFrom(u => u.JudgeResultTask.ArmEnum))
|
|
||||||
.ForMember(o => o.IsTrigerJudge, t => t.MapFrom(u => arbitrationRule == ArbitrationRule.Visit ? u.JudgeResultTaskId != null :
|
|
||||||
(arbitrationRule == ArbitrationRule.Reading ?
|
|
||||||
u.Subject.SubjectVisitTaskList.Any(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingCategory == ReadingCategory.Judge && t.TrialReadingCriterionId == trialReadingCriterionId && u.VisitTaskNum < t.VisitTaskNum) :
|
|
||||||
false)))
|
|
||||||
.ForMember(o => o.JudgeNote, t => t.MapFrom(u => u.JudgeResultRemark))
|
|
||||||
.ForMember(o => o.VisitNote, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.AdjustReason).FirstOrDefault()!.Answer))
|
|
||||||
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
|
||||||
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
|
||||||
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
|
||||||
.ForMember(o => o.QuestionAnswerList, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.IsJudgeQuestion).OrderBy(k => k.ReadingQuestionTrial.ShowOrder)
|
|
||||||
.Select(c => new CommonQuesionInfo()
|
|
||||||
{
|
|
||||||
QuestionName = isEn_Us ? c.ReadingQuestionTrial.QuestionEnName : c.ReadingQuestionTrial.QuestionName,
|
|
||||||
QuestionValue = c.Answer,
|
|
||||||
TranslateDicName = c.ReadingQuestionTrial.DictionaryCode
|
|
||||||
})));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CreateMap<VisitTask, RECIST1Point1EvaluationOfTumorEfficacyExport>().IncludeBase<VisitTask, OverallTumorEvaluationExport>()
|
CreateMap<VisitTask, RECIST1Point1EvaluationOfTumorEfficacyExport>().IncludeBase<VisitTask, OverallTumorEvaluationExport>()
|
||||||
.ForMember(o => o.TargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.TargetLesion).FirstOrDefault()!.Answer))
|
.ForMember(o => o.TargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.TargetLesion).FirstOrDefault()!.Answer))
|
||||||
|
|
|
@ -16,6 +16,7 @@ using Medallion.Threading;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
@ -40,7 +41,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
public TestMinimalApiService()
|
public TestMinimalApiService()
|
||||||
{
|
{
|
||||||
RouteHandlerBuilder = t => {
|
RouteHandlerBuilder = t => {
|
||||||
t.WithGroupName("TestMinimalApi").WithOpenApi();
|
t.WithGroupName("TestMinimalApi").WithOpenApi().WithTags("Institution");
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,5 +30,6 @@ public class UserFeedBack : BaseFullAuditEntity
|
||||||
public Guid? TrialSiteId { get; set; }
|
public Guid? TrialSiteId { get; set; }
|
||||||
public Guid? TrialId { get; set; }
|
public Guid? TrialId { get; set; }
|
||||||
|
|
||||||
|
[MaxLength]
|
||||||
public string ScreenshotListStr { get; set; } = string.Empty;
|
public string ScreenshotListStr { get; set; } = string.Empty;
|
||||||
}
|
}
|
||||||
|
|
17799
IRaCIS.Core.Infra.EFCore/Migrations/20241014085412_UserFeedBackLength.Designer.cs
generated
Normal file
17799
IRaCIS.Core.Infra.EFCore/Migrations/20241014085412_UserFeedBackLength.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,36 @@
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class UserFeedBackLength : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AlterColumn<string>(
|
||||||
|
name: "ScreenshotListStr",
|
||||||
|
table: "UserFeedBack",
|
||||||
|
type: "nvarchar(max)",
|
||||||
|
nullable: false,
|
||||||
|
oldClrType: typeof(string),
|
||||||
|
oldType: "nvarchar(400)",
|
||||||
|
oldMaxLength: 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AlterColumn<string>(
|
||||||
|
name: "ScreenshotListStr",
|
||||||
|
table: "UserFeedBack",
|
||||||
|
type: "nvarchar(400)",
|
||||||
|
maxLength: 400,
|
||||||
|
nullable: false,
|
||||||
|
oldClrType: typeof(string),
|
||||||
|
oldType: "nvarchar(max)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -12512,8 +12512,7 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
|
|
||||||
b.Property<string>("ScreenshotListStr")
|
b.Property<string>("ScreenshotListStr")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasMaxLength(400)
|
.HasColumnType("nvarchar(max)");
|
||||||
.HasColumnType("nvarchar(400)");
|
|
||||||
|
|
||||||
b.Property<int>("State")
|
b.Property<int>("State")
|
||||||
.HasColumnType("int");
|
.HasColumnType("int");
|
||||||
|
|
Loading…
Reference in New Issue