Merge branch 'master' of http://192.168.1.2:8033/IRaCIS_Core_Api
commit
689cce246a
|
@ -3156,6 +3156,16 @@
|
||||||
问题英文名称
|
问题英文名称
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionBase.GroupName">
|
||||||
|
<summary>
|
||||||
|
分组名称
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionBase.GroupEnName">
|
||||||
|
<summary>
|
||||||
|
分组英文名称
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionBase.ClinicalQuestionType">
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionBase.ClinicalQuestionType">
|
||||||
<summary>
|
<summary>
|
||||||
临床问题类型(分组,单选。)
|
临床问题类型(分组,单选。)
|
||||||
|
@ -4276,6 +4286,46 @@
|
||||||
序号标记
|
序号标记
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetCustomTagInDto.VisitTaskId">
|
||||||
|
<summary>
|
||||||
|
任务Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingCustomTagDto.VisitTaskId">
|
||||||
|
<summary>
|
||||||
|
任务Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingCustomTagDto.StudyId">
|
||||||
|
<summary>
|
||||||
|
StudyId
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingCustomTagDto.SeriesId">
|
||||||
|
<summary>
|
||||||
|
SeriesId
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingCustomTagDto.InstanceId">
|
||||||
|
<summary>
|
||||||
|
InstanceId
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingCustomTagDto.MeasureData">
|
||||||
|
<summary>
|
||||||
|
MeasureData
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingCustomTagDto.CreateTime">
|
||||||
|
<summary>
|
||||||
|
CreateTime
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingCustomTagDto.CreateUserId">
|
||||||
|
<summary>
|
||||||
|
CreateUserId
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetManualListOutDto.Name">
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetManualListOutDto.Name">
|
||||||
<summary>
|
<summary>
|
||||||
Name
|
Name
|
||||||
|
@ -10830,6 +10880,14 @@
|
||||||
<param name="_subjectVisitRepository"></param>
|
<param name="_subjectVisitRepository"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.PersonalWorkstation.GetImageClinicalDataToBeConfirmList(IRaCIS.Core.Application.Contracts.ImageClinicalDataToBeDoneQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
||||||
|
<summary>
|
||||||
|
临床数据 --CRC 待确认
|
||||||
|
</summary>
|
||||||
|
<param name="inQuery"></param>
|
||||||
|
<param name="_subjectVisitRepository"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.PersonalWorkstation.GetCRCImageQuestionToBeDoneList(IRaCIS.Core.Application.Contracts.ImageQuestionToBeDoneQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
<member name="M:IRaCIS.Core.Application.PersonalWorkstation.GetCRCImageQuestionToBeDoneList(IRaCIS.Core.Application.Contracts.ImageQuestionToBeDoneQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
|
||||||
<summary>
|
<summary>
|
||||||
CRC影像质疑待处理 --CRC 待办
|
CRC影像质疑待处理 --CRC 待办
|
||||||
|
@ -12247,6 +12305,27 @@
|
||||||
<param name="inDto"></param>
|
<param name="inDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.SubmitCustomTag(IRaCIS.Core.Application.Service.Reading.Dto.ReadingCustomTagDto)">
|
||||||
|
<summary>
|
||||||
|
提交自定义标记
|
||||||
|
</summary>
|
||||||
|
<param name="inDto"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.DeleteCustomTag(System.Guid)">
|
||||||
|
<summary>
|
||||||
|
删除自定义标记
|
||||||
|
</summary>
|
||||||
|
<param name="id"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.GetCustomTag(IRaCIS.Core.Application.Service.Reading.Dto.GetCustomTagInDto)">
|
||||||
|
<summary>
|
||||||
|
获取自定义标记
|
||||||
|
</summary>
|
||||||
|
<param name="inQuery"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.GetManualList(IRaCIS.Core.Application.Service.Reading.Dto.GetManualListInDto)">
|
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.GetManualList(IRaCIS.Core.Application.Service.Reading.Dto.GetManualListInDto)">
|
||||||
<summary>
|
<summary>
|
||||||
获取手册
|
获取手册
|
||||||
|
|
|
@ -327,7 +327,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
var tableQuestions = await _trialClinicalTableQuestionRepository.Where(x => x.TrialClinicalId == formInfo.ClinicalDataTrialSetId)
|
var tableQuestions = await _trialClinicalTableQuestionRepository.Where(x => x.TrialClinicalId == formInfo.ClinicalDataTrialSetId)
|
||||||
.ProjectTo<ClinicalTablePreviewDto>(_mapper.ConfigurationProvider).ToListAsync();
|
.ProjectTo<ClinicalTablePreviewDto>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
|
|
||||||
|
questions.ForEach(x => x.CreateTime = formInfo.CreateTime);
|
||||||
var result = questions.Where(x => x.ClinicalQuestionType == ReadingQestionType.Group).ToList();
|
var result = questions.Where(x => x.ClinicalQuestionType == ReadingQestionType.Group).ToList();
|
||||||
|
|
||||||
result.ForEach(x =>
|
result.ForEach(x =>
|
||||||
|
@ -363,7 +363,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
if (inDto.ClinicalFormId!=null&&(await _readModuleCriterionFromRepository.AnyAsync(x => x.ClinicalFormId == inDto.ClinicalFormId.Value)))
|
if (inDto.ClinicalFormId!=null&&(await _readModuleCriterionFromRepository.AnyAsync(x => x.ClinicalFormId == inDto.ClinicalFormId.Value)))
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("当前表单已确认,无法修改!");
|
throw new BusinessValidationFailedException(_localizer["ClinicalAnswer_translation"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var existsClinical = await _clinicalFormRepository.Where(x =>
|
var existsClinical = await _clinicalFormRepository.Where(x =>
|
||||||
|
@ -375,7 +375,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
if (existsClinical)
|
if (existsClinical)
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("已经添加过临床数据,不允许多次添加!");
|
throw new BusinessValidationFailedException(_localizer["ClinicalAnswer_duplicateData"]);
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -392,7 +392,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
if (await _readModuleRepository.AnyAsync(x =>x.SubjectId== inDto.SubjectId&& x.SubjectVisit.LatestScanDate <= clinicalForm.CheckDate && x.IsCRCConfirm))
|
if (await _readModuleRepository.AnyAsync(x =>x.SubjectId== inDto.SubjectId&& x.SubjectVisit.LatestScanDate <= clinicalForm.CheckDate && x.IsCRCConfirm))
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("无法添加和修改当前日期的临床数据,因为CRC已经确认!");
|
throw new BusinessValidationFailedException(_localizer["ClinicalAnswer_unableToAddOrUpdate"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -478,7 +478,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
if (await _readModuleCriterionFromRepository.AnyAsync(x => x.ClinicalFormId == inDto.ClinicalFormId))
|
if (await _readModuleCriterionFromRepository.AnyAsync(x => x.ClinicalFormId == inDto.ClinicalFormId))
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("当前表单已确认,无法删除!");
|
throw new BusinessValidationFailedException(_localizer["ClinicalAnswer_unableToDelete"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
await _clinicalFormRepository.BatchDeleteNoTrackingAsync(x => x.Id == inDto.ClinicalFormId);
|
await _clinicalFormRepository.BatchDeleteNoTrackingAsync(x => x.Id == inDto.ClinicalFormId);
|
||||||
|
@ -549,7 +549,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
var result = await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, string.IsNullOrWhiteSpace(inDto.SortField) ? nameof(GetCRCConfirmListOutDto.LatestScanDate) : inDto.SortField, inDto.Asc);
|
var result = await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, new string[2] { "SubjectCode asc", "LatestScanDate asc" });
|
||||||
|
|
||||||
var formList = await _clinicalFormRepository.Where(x => x.TrialId == inDto.TrialId)
|
var formList = await _clinicalFormRepository.Where(x => x.TrialId == inDto.TrialId)
|
||||||
.Where(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
|
.Where(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
|
||||||
|
@ -771,7 +771,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
SubjectId= readModule.SubjectId,
|
SubjectId= readModule.SubjectId,
|
||||||
IsCRCConfirm=false,
|
IsCRCConfirm=false,
|
||||||
TrialReadingCriterionId = readModule.TrialReadingCriterionId,
|
TrialReadingCriterionId = readModule.TrialReadingCriterionId,
|
||||||
ReadModuleId = inDto.ReadModuleId,
|
//ReadModuleId = inDto.ReadModuleId,
|
||||||
PageIndex =1,
|
PageIndex =1,
|
||||||
PageSize=9999,
|
PageSize=9999,
|
||||||
})).CurrentPageData.ToList();
|
})).CurrentPageData.ToList();
|
||||||
|
@ -839,12 +839,12 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
if (dataList.Any(x => x.IsCRCConfirm && x.LatestScanDate > presentData.LatestScanDate && x.ReadingSetType == presentData.ReadingSetType))
|
if (dataList.Any(x => x.IsCRCConfirm && x.LatestScanDate > presentData.LatestScanDate && x.ReadingSetType == presentData.ReadingSetType))
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("当前数据并非最后一条确认信息,无法取消!");
|
throw new BusinessValidationFailedException(_localizer["ClinicalAnswer_unableToCancel"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(presentData.IsPMConfirm)
|
if(presentData.IsPMConfirm)
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("PM已确认,无法取消!");
|
throw new BusinessValidationFailedException(_localizer["ClinicalAnswer_unableToCancelPMConfirmed"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (presentData.IsNotNeedPMConfirm)
|
if (presentData.IsNotNeedPMConfirm)
|
||||||
|
@ -883,17 +883,17 @@ namespace IRaCIS.Core.Application.Service
|
||||||
var readModuleData = await _readModuleRepository.Where(x => x.Id == inDto.ReadModuleId).FirstNotNullAsync();
|
var readModuleData = await _readModuleRepository.Where(x => x.Id == inDto.ReadModuleId).FirstNotNullAsync();
|
||||||
if (!readModuleData.IsCRCConfirm)
|
if (!readModuleData.IsCRCConfirm)
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("CRC还未确认数据,PM无法操作");
|
throw new BusinessValidationFailedException(_localizer["ClinicalAnswer_PMUnableToOperate"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (readModuleData.IsCRCApplicationRevoke && inDto.IsConfirm)
|
if (readModuleData.IsCRCApplicationRevoke && inDto.IsConfirm)
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("CRC正在申请退回,PM无法确认");
|
throw new BusinessValidationFailedException(_localizer["ClinicalAnswer_PMUnableToConfirm"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!readModuleData.IsCRCApplicationRevoke && !inDto.IsConfirm)
|
if (!readModuleData.IsCRCApplicationRevoke && !inDto.IsConfirm)
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("CRC未申请退回,PM无法撤销");
|
throw new BusinessValidationFailedException(_localizer["ClinicalAnswer_PMUnableToWithdraw"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inDto.IsConfirm)
|
if (inDto.IsConfirm)
|
||||||
|
|
|
@ -68,7 +68,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
if (_systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId).Count() == 0)
|
if (_systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId).Count() == 0)
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("当前临床数据未配置问题,请先配置问题之后再应用");
|
throw new BusinessValidationFailedException(_localizer["ClinicalComment_dataNotConfigured"]);
|
||||||
}
|
}
|
||||||
if (isNeedVerify&&_systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.IsCheckDate).Count() != 1)
|
if (isNeedVerify&&_systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.IsCheckDate).Count() != 1)
|
||||||
{
|
{
|
||||||
|
@ -103,7 +103,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
if (_trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId).Count() == 0)
|
if (_trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId).Count() == 0)
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("当前临床数据未配置问题,请先配置问题之后再应用");
|
throw new BusinessValidationFailedException(_localizer["ClinicalComment_dataNotConfigured"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isNeedVerify&&_trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId && x.IsCheckDate).Count() != 1)
|
if (isNeedVerify&&_trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId && x.IsCheckDate).Count() != 1)
|
||||||
|
|
|
@ -123,7 +123,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
var tableQuestions= await _systemClinicalTableQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId)
|
var tableQuestions= await _systemClinicalTableQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId)
|
||||||
.ProjectTo<ClinicalTablePreviewDto>(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync();
|
.ProjectTo<ClinicalTablePreviewDto>(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync();
|
||||||
|
|
||||||
|
questions.ForEach(x => x.CreateTime = null);
|
||||||
var result = questions.Where(x => x.ClinicalQuestionType == ReadingQestionType.Group).ToList();
|
var result = questions.Where(x => x.ClinicalQuestionType == ReadingQestionType.Group).ToList();
|
||||||
|
|
||||||
result.ForEach(x =>
|
result.ForEach(x =>
|
||||||
|
@ -149,7 +149,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
var tableQuestions = await _trialClinicalTableQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId)
|
var tableQuestions = await _trialClinicalTableQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId)
|
||||||
.ProjectTo<ClinicalTablePreviewDto>(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync();
|
.ProjectTo<ClinicalTablePreviewDto>(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync();
|
||||||
|
|
||||||
|
questions.ForEach(x => x.CreateTime = null);
|
||||||
var result = questions.Where(x => x.ClinicalQuestionType == ReadingQestionType.Group).OrderBy(x => x.ShowOrder).ToList();
|
var result = questions.Where(x => x.ClinicalQuestionType == ReadingQestionType.Group).OrderBy(x => x.ShowOrder).ToList();
|
||||||
|
|
||||||
result.ForEach(x =>
|
result.ForEach(x =>
|
||||||
|
|
|
@ -8,6 +8,7 @@ using Panda.DynamicWebApi.Attributes;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using IRaCIS.Core.Infrastructure;
|
using IRaCIS.Core.Infrastructure;
|
||||||
|
using System.Linq.Dynamic.Core;
|
||||||
|
|
||||||
namespace IRaCIS.Application.Services
|
namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
|
@ -673,7 +674,7 @@ namespace IRaCIS.Application.Services
|
||||||
.WhereIf(inDto.ReadingClinicalDataId != null, x => x.Id == inDto.ReadingClinicalDataId)
|
.WhereIf(inDto.ReadingClinicalDataId != null, x => x.Id == inDto.ReadingClinicalDataId)
|
||||||
.WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId)
|
.WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId)
|
||||||
.WhereIf(inDto.SelectIsSign, x => x.IsSign == true)
|
.WhereIf(inDto.SelectIsSign, x => x.IsSign == true)
|
||||||
.Where(x => x.ReadingId == inDto.ReadingId || (x.SubjectId == inDto.SubjectId && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject))
|
.Where(x => x.ReadingId == inDto.ReadingId)
|
||||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
.Select(x => new GetReadingClinicalDataListOutDto()
|
||||||
{
|
{
|
||||||
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
||||||
|
@ -735,10 +736,11 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
var setIds = moduleCriterionFromList.Select(x=>x.ClinicalDataTrialSetId).Distinct().ToList();
|
|
||||||
var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && (x.ClinicalDataLevel == ClinicalLevel.OncologyRead || x.ClinicalDataLevel == ClinicalLevel.ImageRead))
|
|
||||||
.Where(x => setIds.Contains(x.Id))
|
|
||||||
|
|
||||||
|
var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.Structuring)
|
||||||
|
.WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead)
|
||||||
|
.WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
|
||||||
|
.Where(x=>x.TrialClinicalDataSetCriteriaList.Any(y=>y.TrialReadingCriterionId==readModule.TrialReadingCriterionId))
|
||||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
.Select(x => new GetReadingClinicalDataListOutDto()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -905,9 +907,11 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
var setIds = moduleCriterionFromList.Select(x => x.ClinicalDataTrialSetId).Distinct().ToList();
|
|
||||||
var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && (x.ClinicalDataLevel == ClinicalLevel.OncologyRead || x.ClinicalDataLevel == ClinicalLevel.ImageRead))
|
var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC&&x.ClinicalUploadType== ClinicalUploadType.Structuring)
|
||||||
.Where(x => setIds.Contains(x.Id))
|
.WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading,x=>x.ClinicalDataLevel== ClinicalLevel.ImageRead)
|
||||||
|
.WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
|
||||||
|
.Where(x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == readModule.TrialReadingCriterionId))
|
||||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
.Select(x => new GetReadingClinicalDataListOutDto()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -111,6 +111,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
|
|
||||||
public string Answer { get; set; } = string.Empty;
|
public string Answer { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 子问题
|
/// 子问题
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -169,6 +171,16 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string QuestionEnName { get; set; } = string.Empty;
|
public string QuestionEnName { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 分组名称
|
||||||
|
/// </summary>
|
||||||
|
public string? GroupName { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 分组英文名称
|
||||||
|
/// </summary>
|
||||||
|
public string? GroupEnName { get; set; } = string.Empty;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 临床问题类型(分组,单选。)
|
/// 临床问题类型(分组,单选。)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -332,6 +332,54 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
public List<AdditionalQuestionAnswer> AnswerList { get; set; } = new List<AdditionalQuestionAnswer>();
|
public List<AdditionalQuestionAnswer> AnswerList { get; set; } = new List<AdditionalQuestionAnswer>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class GetCustomTagInDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 任务Id
|
||||||
|
/// </summary>
|
||||||
|
public Guid VisitTaskId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReadingCustomTagDto
|
||||||
|
{
|
||||||
|
public Guid? Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 任务Id
|
||||||
|
/// </summary>
|
||||||
|
public Guid VisitTaskId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// StudyId
|
||||||
|
/// </summary>
|
||||||
|
public Guid? StudyId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SeriesId
|
||||||
|
/// </summary>
|
||||||
|
public Guid? SeriesId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// InstanceId
|
||||||
|
/// </summary>
|
||||||
|
public Guid? InstanceId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MeasureData
|
||||||
|
/// </summary>
|
||||||
|
public string MeasureData { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CreateTime
|
||||||
|
/// </summary>
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CreateUserId
|
||||||
|
/// </summary>
|
||||||
|
public Guid CreateUserId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class GetManualListInDto
|
public class GetManualListInDto
|
||||||
{
|
{
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
|
@ -45,6 +45,7 @@ namespace IRaCIS.Application.Services
|
||||||
private readonly IRepository<OrganInfo> _organInfoRepository;
|
private readonly IRepository<OrganInfo> _organInfoRepository;
|
||||||
private readonly IRepository<TrialDocument> _trialDocumentRepository;
|
private readonly IRepository<TrialDocument> _trialDocumentRepository;
|
||||||
private readonly IRepository<User> _userRepository;
|
private readonly IRepository<User> _userRepository;
|
||||||
|
private readonly IRepository<ReadingCustomTag> _readingCustomTagRepository;
|
||||||
private readonly IRepository<ReadingSystemCriterionDictionary> _readingCriterionDictionaryRepository;
|
private readonly IRepository<ReadingSystemCriterionDictionary> _readingCriterionDictionaryRepository;
|
||||||
private readonly IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository;
|
private readonly IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository;
|
||||||
private readonly IRepository<TumorAssessment_RECIST1Point1> _tumorAssessmentRepository;
|
private readonly IRepository<TumorAssessment_RECIST1Point1> _tumorAssessmentRepository;
|
||||||
|
@ -84,6 +85,7 @@ namespace IRaCIS.Application.Services
|
||||||
IRepository<OrganInfo> organInfoRepository,
|
IRepository<OrganInfo> organInfoRepository,
|
||||||
IRepository<TrialDocument> trialDocumentRepository,
|
IRepository<TrialDocument> trialDocumentRepository,
|
||||||
IRepository<User> userRepository,
|
IRepository<User> userRepository,
|
||||||
|
IRepository<ReadingCustomTag> readingCustomTagRepository,
|
||||||
IMemoryCache cache,
|
IMemoryCache cache,
|
||||||
IRepository<ReadingSystemCriterionDictionary> readingCriterionDictionaryRepository,
|
IRepository<ReadingSystemCriterionDictionary> readingCriterionDictionaryRepository,
|
||||||
IRepository<ReadingTrialCriterionDictionary> readingTrialCriterionDictionaryRepository,
|
IRepository<ReadingTrialCriterionDictionary> readingTrialCriterionDictionaryRepository,
|
||||||
|
@ -121,6 +123,7 @@ namespace IRaCIS.Application.Services
|
||||||
this._organInfoRepository = organInfoRepository;
|
this._organInfoRepository = organInfoRepository;
|
||||||
this._trialDocumentRepository = trialDocumentRepository;
|
this._trialDocumentRepository = trialDocumentRepository;
|
||||||
this._userRepository = userRepository;
|
this._userRepository = userRepository;
|
||||||
|
this._readingCustomTagRepository = readingCustomTagRepository;
|
||||||
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
|
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
|
||||||
this._tumorAssessmentRepository = tumorAssessmentRepository;
|
this._tumorAssessmentRepository = tumorAssessmentRepository;
|
||||||
this._readingTableAnswerRowInfoRepository = readingTableAnswerRowInfoRepository;
|
this._readingTableAnswerRowInfoRepository = readingTableAnswerRowInfoRepository;
|
||||||
|
@ -138,6 +141,43 @@ namespace IRaCIS.Application.Services
|
||||||
this._trialEmailNoticeConfigService = trialEmailNoticeConfigService;
|
this._trialEmailNoticeConfigService = trialEmailNoticeConfigService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 提交自定义标记
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<IResponseOutput> SubmitCustomTag(ReadingCustomTagDto inDto)
|
||||||
|
{
|
||||||
|
var entity = await _readingCustomTagRepository.InsertOrUpdateAsync(inDto, true);
|
||||||
|
return ResponseOutput.Ok(entity.Id.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 删除自定义标记
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("{id:guid}")]
|
||||||
|
public async Task<IResponseOutput> DeleteCustomTag(Guid id)
|
||||||
|
{
|
||||||
|
var success = await _readingCustomTagRepository.DeleteFromQueryAsync(t => t.Id == id, true);
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取自定义标记
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inQuery"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<List<ReadingCustomTagDto>> GetCustomTag(GetCustomTagInDto inQuery)
|
||||||
|
{
|
||||||
|
var result= await _readingCustomTagRepository.Where(x => x.VisitTaskId == inQuery.VisitTaskId).ProjectTo<ReadingCustomTagDto>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取手册
|
/// 获取手册
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -8,6 +8,7 @@ using IRaCIS.Core.Application.Service;
|
||||||
using IRaCIS.Core.Application.ViewModel;
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
using IRaCIS.Core.Infrastructure;
|
using IRaCIS.Core.Infrastructure;
|
||||||
using IRaCIS.Core.Application.Filter;
|
using IRaCIS.Core.Application.Filter;
|
||||||
|
using IRaCIS.Core.Domain.Models;
|
||||||
|
|
||||||
namespace IRaCIS.Application.Services
|
namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
|
@ -118,6 +119,13 @@ namespace IRaCIS.Application.Services
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<bool> ChangeCutOffVisit(ChangeCutOffVisitInDto inDto)
|
public async Task<bool> ChangeCutOffVisit(ChangeCutOffVisitInDto inDto)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (await _readModuleRepository.AnyAsync(x => x.Id == inDto.Id && x.IsCRCConfirm))
|
||||||
|
{
|
||||||
|
//---CRC已经确认临床数据 不允许编辑
|
||||||
|
throw new BusinessValidationFailedException(_localizer["ReadModule_CRCConfirmCanNtoEdit"]);
|
||||||
|
}
|
||||||
|
|
||||||
await _readModuleRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.Id, x => new ReadModule() {
|
await _readModuleRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.Id, x => new ReadModule() {
|
||||||
SubjectVisitId=inDto.SubjectVisitIdId,
|
SubjectVisitId=inDto.SubjectVisitIdId,
|
||||||
ModuleName=inDto.Name,
|
ModuleName=inDto.Name,
|
||||||
|
@ -483,9 +491,9 @@ namespace IRaCIS.Application.Services
|
||||||
return ResponseOutput.NotOk(_localizer["ReadModule_SignedDataCannotDelete"]);
|
return ResponseOutput.NotOk(_localizer["ReadModule_SignedDataCannotDelete"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
await _readModuleCriterionFromRepository.BatchDeleteNoTrackingAsync(x => x.ReadModuleId == readModuleId);
|
|
||||||
|
|
||||||
if (await _readModuleCriterionFromRepository.AnyAsync(x => x.ReadModuleId == readModuleId))
|
|
||||||
|
if (await _readModuleRepository.AnyAsync(x => x.Id == readModuleId&&x.IsCRCConfirm))
|
||||||
{
|
{
|
||||||
//---CRC已经确认临床数据 不允许删除
|
//---CRC已经确认临床数据 不允许删除
|
||||||
return ResponseOutput.NotOk(_localizer["ReadModule_CRCConfirmClinicalData"]);
|
return ResponseOutput.NotOk(_localizer["ReadModule_CRCConfirmClinicalData"]);
|
||||||
|
|
|
@ -18,10 +18,15 @@ namespace IRaCIS.Core.Application.Service
|
||||||
var isEn_Us=false;
|
var isEn_Us=false;
|
||||||
|
|
||||||
#region 临床问题
|
#region 临床问题
|
||||||
CreateMap<TrialClinicalQuestion, TrialClinicalQuestionDto>();
|
CreateMap<TrialClinicalQuestion, TrialClinicalQuestionDto>()
|
||||||
|
.ForMember(d => d.GroupName, opt => opt.MapFrom(src => src.GroupQuestin.QuestionName))
|
||||||
|
.ForMember(d => d.GroupEnName, opt => opt.MapFrom(src => src.GroupQuestin.QuestionEnName));
|
||||||
|
|
||||||
CreateMap<TrialClinicalQuestionDto, TrialClinicalQuestion>();
|
CreateMap<TrialClinicalQuestionDto, TrialClinicalQuestion>();
|
||||||
|
|
||||||
CreateMap<SystemClinicalQuestion, SystemClinicalQuestionDto>();
|
CreateMap<SystemClinicalQuestion, SystemClinicalQuestionDto>()
|
||||||
|
.ForMember(d => d.GroupName, opt => opt.MapFrom(src => src.GroupQuestin.QuestionName))
|
||||||
|
.ForMember(d => d.GroupEnName, opt => opt.MapFrom(src => src.GroupQuestin.QuestionEnName));
|
||||||
CreateMap<SystemClinicalQuestionDto, SystemClinicalQuestion>();
|
CreateMap<SystemClinicalQuestionDto, SystemClinicalQuestion>();
|
||||||
|
|
||||||
CreateMap<SystemClinicalTableQuestion, SystemClinicalTableQuestionDto>();
|
CreateMap<SystemClinicalTableQuestion, SystemClinicalTableQuestionDto>();
|
||||||
|
@ -54,6 +59,9 @@ namespace IRaCIS.Core.Application.Service
|
||||||
CreateMap<ShortcutKey, DefaultShortcutKeyView>();
|
CreateMap<ShortcutKey, DefaultShortcutKeyView>();
|
||||||
|
|
||||||
|
|
||||||
|
CreateMap<ReadingCustomTag, ReadingCustomTagDto>();
|
||||||
|
CreateMap<ReadingCustomTagDto, ReadingCustomTag>();
|
||||||
|
|
||||||
CreateMap<UserWLTemplate, UserWLTemplateView>();
|
CreateMap<UserWLTemplate, UserWLTemplateView>();
|
||||||
CreateMap<UserWLTemplate,UserWLTemplateAddOrEdit>().ReverseMap();
|
CreateMap<UserWLTemplate,UserWLTemplateAddOrEdit>().ReverseMap();
|
||||||
|
|
||||||
|
|
|
@ -143,6 +143,13 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string CalculateQuestions { get; set; } = "[]";
|
public string CalculateQuestions { get; set; } = "[]";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 分组
|
||||||
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("GroupId")]
|
||||||
|
public SystemClinicalQuestion GroupQuestin { get; set; }
|
||||||
|
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public List<CalculateInfo> CalculateQuestionList
|
public List<CalculateInfo> CalculateQuestionList
|
||||||
{
|
{
|
||||||
|
|
|
@ -133,6 +133,13 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ClinicalCalculateMark? CustomCalculateMark { get; set; }
|
public ClinicalCalculateMark? CustomCalculateMark { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 分组
|
||||||
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("GroupId")]
|
||||||
|
public TrialClinicalQuestion GroupQuestin { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 自定义计算问题
|
/// 自定义计算问题
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2023-07-31 11:12:15
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
using System;
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
namespace IRaCIS.Core.Domain.Models
|
||||||
|
{
|
||||||
|
///<summary>
|
||||||
|
///ReadingCustomTag
|
||||||
|
///</summary>
|
||||||
|
[Table("ReadingCustomTag")]
|
||||||
|
public class ReadingCustomTag : Entity, IAuditAdd
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 任务Id
|
||||||
|
/// </summary>
|
||||||
|
public Guid VisitTaskId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// StudyId
|
||||||
|
/// </summary>
|
||||||
|
public Guid? StudyId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SeriesId
|
||||||
|
/// </summary>
|
||||||
|
public Guid? SeriesId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// InstanceId
|
||||||
|
/// </summary>
|
||||||
|
public Guid? InstanceId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MeasureData
|
||||||
|
/// </summary>
|
||||||
|
public string MeasureData { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CreateTime
|
||||||
|
/// </summary>
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CreateUserId
|
||||||
|
/// </summary>
|
||||||
|
public Guid CreateUserId { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -216,6 +216,7 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||||
#region Reading
|
#region Reading
|
||||||
public virtual DbSet<TrialCriterionDictionaryCode> TrialCriterionDictionaryCode { get; set; }
|
public virtual DbSet<TrialCriterionDictionaryCode> TrialCriterionDictionaryCode { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<ReadingCustomTag> ReadingCustomTag { get; set; }
|
||||||
public virtual DbSet<SystemCriterionDictionaryCode> SystemCriterionDictionaryCode { get; set; }
|
public virtual DbSet<SystemCriterionDictionaryCode> SystemCriterionDictionaryCode { get; set; }
|
||||||
public virtual DbSet<ReadingTaskRelation> ReadingTaskRelation { get; set; }
|
public virtual DbSet<ReadingTaskRelation> ReadingTaskRelation { get; set; }
|
||||||
public virtual DbSet<OrganInfo> OrganInfo { get; set; }
|
public virtual DbSet<OrganInfo> OrganInfo { get; set; }
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
public static readonly string ConnectionString = "Server=123.56.94.154,1433\\MSSQLSERVER;Database=IRaCIS_New_Tet;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true";
|
public static readonly string ConnectionString = "Server=123.56.94.154,1433\\MSSQLSERVER;Database=IRaCIS_New_Tet;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true";
|
||||||
public static readonly string DbDatabase = "IRaCIS_New_Tet";
|
public static readonly string DbDatabase = "IRaCIS_New_Tet";
|
||||||
//表名称用字符串,拼接
|
//表名称用字符串,拼接
|
||||||
public static readonly string TableName = "ReadModuleCriterionFrom";
|
public static readonly string TableName = "ReadingCustomTag";
|
||||||
//具体文件里面 例如service 可以配置是否分页
|
//具体文件里面 例如service 可以配置是否分页
|
||||||
}
|
}
|
||||||
#>
|
#>
|
||||||
|
|
Loading…
Reference in New Issue