Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
df7022b2e3
|
|
@ -35,7 +35,8 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
"BasicSystemConfig": {
|
"BasicSystemConfig": {
|
||||||
|
// 启用质控风险控制功能
|
||||||
|
"QCRiskControl": true,
|
||||||
"OpenUserComplexPassword": true,
|
"OpenUserComplexPassword": true,
|
||||||
|
|
||||||
"OpenSignDocumentBeforeWork": true,
|
"OpenSignDocumentBeforeWork": true,
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,8 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"BasicSystemConfig": {
|
"BasicSystemConfig": {
|
||||||
|
// 启用质控风险控制功能
|
||||||
|
"QCRiskControl": true,
|
||||||
"OpenUserComplexPassword": true,
|
"OpenUserComplexPassword": true,
|
||||||
"OpenSignDocumentBeforeWork": true,
|
"OpenSignDocumentBeforeWork": true,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,8 @@
|
||||||
},
|
},
|
||||||
// 系统配置
|
// 系统配置
|
||||||
"BasicSystemConfig": {
|
"BasicSystemConfig": {
|
||||||
|
// 启用质控风险控制功能
|
||||||
|
"QCRiskControl": true,
|
||||||
// 打开用户复杂密码
|
// 打开用户复杂密码
|
||||||
"OpenUserComplexPassword": false,
|
"OpenUserComplexPassword": false,
|
||||||
// 是否在开始工作前强制签署电子知情同意书
|
// 是否在开始工作前强制签署电子知情同意书
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,8 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
"BasicSystemConfig": {
|
"BasicSystemConfig": {
|
||||||
|
// 启用质控风险控制功能
|
||||||
|
"QCRiskControl": true,
|
||||||
"OpenUserComplexPassword": false,
|
"OpenUserComplexPassword": false,
|
||||||
|
|
||||||
"OpenSignDocumentBeforeWork": false,
|
"OpenSignDocumentBeforeWork": false,
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,8 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"BasicSystemConfig": {
|
"BasicSystemConfig": {
|
||||||
|
// 启用质控风险控制功能
|
||||||
|
"QCRiskControl": true,
|
||||||
"OpenUserComplexPassword": true,
|
"OpenUserComplexPassword": true,
|
||||||
"OpenSignDocumentBeforeWork": true,
|
"OpenSignDocumentBeforeWork": true,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,8 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"BasicSystemConfig": {
|
"BasicSystemConfig": {
|
||||||
|
// 启用质控风险控制功能
|
||||||
|
"QCRiskControl": true,
|
||||||
"OpenUserComplexPassword": true,
|
"OpenUserComplexPassword": true,
|
||||||
|
|
||||||
"OpenSignDocumentBeforeWork": true,
|
"OpenSignDocumentBeforeWork": true,
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,8 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"BasicSystemConfig": {
|
"BasicSystemConfig": {
|
||||||
|
// 启用质控风险控制功能
|
||||||
|
"QCRiskControl": true,
|
||||||
"OpenUserComplexPassword": true,
|
"OpenUserComplexPassword": true,
|
||||||
"OpenSignDocumentBeforeWork": true,
|
"OpenSignDocumentBeforeWork": true,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,8 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
"BasicSystemConfig": {
|
"BasicSystemConfig": {
|
||||||
|
// 启用质控风险控制功能
|
||||||
|
"QCRiskControl": true,
|
||||||
"OpenUserComplexPassword": true,
|
"OpenUserComplexPassword": true,
|
||||||
"OpenSignDocumentBeforeWork": true,
|
"OpenSignDocumentBeforeWork": true,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ namespace IRaCIS.Core.Domain.Share;
|
||||||
[Description("多环境 配置环境实体")]
|
[Description("多环境 配置环境实体")]
|
||||||
public class ServiceVerifyConfigOption
|
public class ServiceVerifyConfigOption
|
||||||
{
|
{
|
||||||
|
public bool QCRiskControl { get; set; }
|
||||||
public bool OpenUserComplexPassword { get; set; }
|
public bool OpenUserComplexPassword { get; set; }
|
||||||
|
|
||||||
public bool OpenSignDocumentBeforeWork { get; set; }
|
public bool OpenSignDocumentBeforeWork { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -265,6 +265,7 @@ namespace IRaCIS.Core.Application.Contracts.DTO
|
||||||
{
|
{
|
||||||
public bool ExistsManual { get; set; }
|
public bool ExistsManual { get; set; }
|
||||||
public bool IsHaveStudyClinicalData { get; set; }
|
public bool IsHaveStudyClinicalData { get; set; }
|
||||||
|
public bool QCRiskControl { get; set; }
|
||||||
public SubjectClinicalDataDto SubjectClinicalData { get; set; } = new SubjectClinicalDataDto();
|
public SubjectClinicalDataDto SubjectClinicalData { get; set; } = new SubjectClinicalDataDto();
|
||||||
|
|
||||||
public List<NoneDicomStudyView> NoneDicomStudyList { get; set; } = new List<NoneDicomStudyView>();
|
public List<NoneDicomStudyView> NoneDicomStudyList { get; set; } = new List<NoneDicomStudyView>();
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ using IRaCIS.Core.Infrastructure;
|
||||||
using IRaCIS.Core.Infrastructure.Extention;
|
using IRaCIS.Core.Infrastructure.Extention;
|
||||||
using MassTransit.Initializers;
|
using MassTransit.Initializers;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
using NPOI.SS.Formula.Functions;
|
using NPOI.SS.Formula.Functions;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
|
|
@ -25,6 +26,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
IRepository<DicomSeries> _dicomSeriesRepository,
|
IRepository<DicomSeries> _dicomSeriesRepository,
|
||||||
IRepository<NoneDicomStudy> _noneDicomStudyRepository,
|
IRepository<NoneDicomStudy> _noneDicomStudyRepository,
|
||||||
IRepository<QCChallenge> _qcChallengeRepository,
|
IRepository<QCChallenge> _qcChallengeRepository,
|
||||||
|
IOptionsMonitor<ServiceVerifyConfigOption> _verifyConfig,
|
||||||
IRepository<SubjectVisitImageBackRecord> _subjectVisitImageBackRecordReposiotry,
|
IRepository<SubjectVisitImageBackRecord> _subjectVisitImageBackRecordReposiotry,
|
||||||
IRepository<UserRole> _userRoleReposiotry,
|
IRepository<UserRole> _userRoleReposiotry,
|
||||||
IReadingImageTaskService _IReadingImageTaskService, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, IQCListService
|
IReadingImageTaskService _IReadingImageTaskService, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, IQCListService
|
||||||
|
|
@ -456,7 +458,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
return new TrialVisitQADTO
|
return new TrialVisitQADTO
|
||||||
{
|
{
|
||||||
QCQuestionAnswerList = qacheckList,
|
QCQuestionAnswerList = qacheckList,
|
||||||
|
QCRiskControl = _verifyConfig.CurrentValue.QCRiskControl,
|
||||||
SecondReviewList = secondReviewList,
|
SecondReviewList = secondReviewList,
|
||||||
|
|
||||||
IsHaveStudyClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(x => x.IsConfirm && x.TrialId == sv.TrialId && x.ClinicalDataLevel == ClinicalLevel.Study),
|
IsHaveStudyClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(x => x.IsConfirm && x.TrialId == sv.TrialId && x.ClinicalDataLevel == ClinicalLevel.Study),
|
||||||
|
|
|
||||||
|
|
@ -1953,10 +1953,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
|
|
||||||
var baseLineSpleenLength = await GetBaseLineSpleenLength(inDto);
|
var baseLineSpleenLength = await GetBaseLineSpleenLength(inDto);
|
||||||
|
|
||||||
var presentSpleenLength = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
|
var presentSpleenLength = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturnNull();
|
||||||
|
|
||||||
|
if (presentSpleenLength == null)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
if (baseLineSpleenLength - 130 > 0 && presentSpleenLength > 130)
|
if (baseLineSpleenLength - 130 > 0 && presentSpleenLength > 130)
|
||||||
{
|
{
|
||||||
return ReserveDecimal((presentSpleenLength - 130 - (baseLineSpleenLength - 130)) * 100 / (baseLineSpleenLength - 130), inDto.DigitPlaces);
|
return ReserveDecimal((presentSpleenLength.Value - 130 - (baseLineSpleenLength - 130)) * 100 / (baseLineSpleenLength - 130), inDto.DigitPlaces);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -1981,11 +1986,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
}
|
}
|
||||||
if (TaskAnswer.Count() == 0)
|
if (TaskAnswer.Count() == 0)
|
||||||
{
|
{
|
||||||
return "0";
|
return string.Empty;
|
||||||
|
}
|
||||||
|
var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturnNull();
|
||||||
|
if (presentSpd == null)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
}
|
}
|
||||||
var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
|
|
||||||
var lowSplenoncus = TaskAnswer.OrderBy(x => x.SpleenLength).Select(x => x.SpleenLength).FirstOrDefault();
|
var lowSplenoncus = TaskAnswer.OrderBy(x => x.SpleenLength).Select(x => x.SpleenLength).FirstOrDefault();
|
||||||
return (presentSpd - lowSplenoncus).ToString();
|
return (presentSpd.Value - lowSplenoncus).ToString();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -2011,8 +2020,16 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
return "NA";
|
return "NA";
|
||||||
}
|
}
|
||||||
|
|
||||||
var lowSplenoncus = taskAnswer.OrderBy(x => x.SpleenLength).FirstOrDefault();
|
var lowSplenoncus = taskAnswer.Where(x=>x.SpleenLength!=0).OrderBy(x => x.SpleenLength).FirstOrDefault();
|
||||||
return lowSplenoncus.BlindName;
|
if (lowSplenoncus != null)
|
||||||
|
{
|
||||||
|
return lowSplenoncus.BlindName;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -3015,10 +3032,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
}
|
}
|
||||||
|
|
||||||
var baseLineTaskId = await GetBaseLineTaskId(inDto);
|
var baseLineTaskId = await GetBaseLineTaskId(inDto);
|
||||||
var presentSpleenLength = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
|
var presentSpleenLength = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturnNull();
|
||||||
|
if(presentSpleenLength==null)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
var baseLineSpleenLength = (await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0();
|
var baseLineSpleenLength = (await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0();
|
||||||
|
|
||||||
return (presentSpleenLength - baseLineSpleenLength).ToString();
|
return (presentSpleenLength.Value - baseLineSpleenLength).ToString();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1953,10 +1953,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
|
|
||||||
var baseLineSpleenLength = await GetBaseLineSpleenLength(inDto);
|
var baseLineSpleenLength = await GetBaseLineSpleenLength(inDto);
|
||||||
|
|
||||||
var presentSpleenLength = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
|
var presentSpleenLength = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturnNull();
|
||||||
|
|
||||||
|
if (presentSpleenLength == null)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
if (baseLineSpleenLength - 130 > 0 && presentSpleenLength > 130)
|
if (baseLineSpleenLength - 130 > 0 && presentSpleenLength > 130)
|
||||||
{
|
{
|
||||||
return ReserveDecimal((presentSpleenLength - 130 - (baseLineSpleenLength - 130)) * 100 / (baseLineSpleenLength - 130), inDto.DigitPlaces);
|
return ReserveDecimal((presentSpleenLength.Value - 130 - (baseLineSpleenLength - 130)) * 100 / (baseLineSpleenLength - 130), inDto.DigitPlaces);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -1981,11 +1986,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
}
|
}
|
||||||
if (TaskAnswer.Count() == 0)
|
if (TaskAnswer.Count() == 0)
|
||||||
{
|
{
|
||||||
return "0";
|
return string.Empty;
|
||||||
|
}
|
||||||
|
var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturnNull();
|
||||||
|
if (presentSpd == null)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
}
|
}
|
||||||
var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
|
|
||||||
var lowSplenoncus = TaskAnswer.OrderBy(x => x.SpleenLength).Select(x => x.SpleenLength).FirstOrDefault();
|
var lowSplenoncus = TaskAnswer.OrderBy(x => x.SpleenLength).Select(x => x.SpleenLength).FirstOrDefault();
|
||||||
return (presentSpd - lowSplenoncus).ToString();
|
return (presentSpd.Value - lowSplenoncus).ToString();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -2011,8 +2020,16 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
return "NA";
|
return "NA";
|
||||||
}
|
}
|
||||||
|
|
||||||
var lowSplenoncus = taskAnswer.OrderBy(x => x.SpleenLength).FirstOrDefault();
|
var lowSplenoncus = taskAnswer.Where(x => x.SpleenLength != 0).OrderBy(x => x.SpleenLength).FirstOrDefault();
|
||||||
return lowSplenoncus.BlindName;
|
if (lowSplenoncus != null)
|
||||||
|
{
|
||||||
|
return lowSplenoncus.BlindName;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -3015,10 +3032,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
}
|
}
|
||||||
|
|
||||||
var baseLineTaskId = await GetBaseLineTaskId(inDto);
|
var baseLineTaskId = await GetBaseLineTaskId(inDto);
|
||||||
var presentSpleenLength = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
|
var presentSpleenLength = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturnNull();
|
||||||
|
if (presentSpleenLength == null)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
var baseLineSpleenLength = (await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0();
|
var baseLineSpleenLength = (await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0();
|
||||||
|
|
||||||
return (presentSpleenLength - baseLineSpleenLength).ToString();
|
return (presentSpleenLength.Value - baseLineSpleenLength).ToString();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -593,13 +593,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
TableQuestionId = x.TableQuestionId,
|
TableQuestionId = x.TableQuestionId,
|
||||||
TrialId = x.TrialId,
|
TrialId = x.TrialId,
|
||||||
VisitTaskId = visitTaskId,
|
VisitTaskId = visitTaskId,
|
||||||
});
|
}).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers);
|
var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers);
|
||||||
|
|
||||||
|
|
||||||
|
await _generalCalculateService.CopyHistoryAnswer(taskinfo, addList, tableAnswers);
|
||||||
await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
|
await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
|
||||||
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);
|
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue