Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing Details

IRC_NewDev
hang 2024-01-15 15:14:41 +08:00
commit a37a1a6b95
7 changed files with 64 additions and 22 deletions

View File

@ -109,7 +109,6 @@ namespace IRaCIS.Core.Application.ViewModel
public DateTime? BeginSignTime { get; set; } public DateTime? BeginSignTime { get; set; }
public AuditAdvice? AuditAdviceEnum { get; set; } public AuditAdvice? AuditAdviceEnum { get; set; }
public DateTime? EndSignTime { get; set; } public DateTime? EndSignTime { get; set; }
public bool IsGetBeRead { get; set; } = false; public bool IsGetBeRead { get; set; } = false;

View File

@ -55,6 +55,7 @@ namespace IRaCIS.Core.Application.Service
var taskMedicalReviewQueryable = _taskMedicalReviewRepository.Where(t => t.VisitTask.TrialId == inQuery.TrialId) var taskMedicalReviewQueryable = _taskMedicalReviewRepository.Where(t => t.VisitTask.TrialId == inQuery.TrialId)
.WhereIf(inQuery.SiteId != null, t => t.VisitTask.Subject.SiteId == inQuery.SiteId) .WhereIf(inQuery.SiteId != null, t => t.VisitTask.Subject.SiteId == inQuery.SiteId)
.WhereIf(inQuery.SubjectId != null, t => t.VisitTask.SubjectId == inQuery.SubjectId)
.WhereIf(inQuery.SubjectId != null, t => t.VisitTask.SubjectId == inQuery.SubjectId) .WhereIf(inQuery.SubjectId != null, t => t.VisitTask.SubjectId == inQuery.SubjectId)
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.VisitTask.Subject.Code.Contains(inQuery.SubjectCode)) .WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.VisitTask.Subject.Code.Contains(inQuery.SubjectCode))
.WhereIf(!string.IsNullOrEmpty(inQuery.TaskName), t => t.VisitTask.TaskName.Contains(inQuery.TaskName) || t.VisitTask.TaskBlindName.Contains(inQuery.TaskName)) .WhereIf(!string.IsNullOrEmpty(inQuery.TaskName), t => t.VisitTask.TaskName.Contains(inQuery.TaskName) || t.VisitTask.TaskBlindName.Contains(inQuery.TaskName))
@ -201,6 +202,7 @@ namespace IRaCIS.Core.Application.Service
.WhereIf(inQuery.Id != null, t => t.Id != inQuery.Id) .WhereIf(inQuery.Id != null, t => t.Id != inQuery.Id)
.WhereIf(inQuery.IsUrgent != null, t => t.VisitTask.IsUrgent == inQuery.IsUrgent) .WhereIf(inQuery.IsUrgent != null, t => t.VisitTask.IsUrgent == inQuery.IsUrgent)
.WhereIf(inQuery.AuditState != null, t => t.AuditState == inQuery.AuditState) .WhereIf(inQuery.AuditState != null, t => t.AuditState == inQuery.AuditState)
.WhereIf(inQuery.DoctorUserIdeaEnum != null, t => t.DoctorUserIdeaEnum == inQuery.DoctorUserIdeaEnum)
.WhereIf(inQuery.TaskState != null, t => t.VisitTask.TaskState == inQuery.TaskState) .WhereIf(inQuery.TaskState != null, t => t.VisitTask.TaskState == inQuery.TaskState)
.WhereIf(inQuery.DoctorUserId != null, t => t.VisitTask.DoctorUserId == inQuery.DoctorUserId) .WhereIf(inQuery.DoctorUserId != null, t => t.VisitTask.DoctorUserId == inQuery.DoctorUserId)
.WhereIf(inQuery.ReadingCategory != null, t => t.VisitTask.ReadingCategory == inQuery.ReadingCategory) .WhereIf(inQuery.ReadingCategory != null, t => t.VisitTask.ReadingCategory == inQuery.ReadingCategory)

View File

@ -42,7 +42,7 @@ namespace IRaCIS.Core.Application.Contracts
public Guid? ConfirmUserId { get; set; } public Guid? ConfirmUserId { get; set; }
public bool IsConfirmed => ConfirmTime is not null; public bool IsConfirmed { get; set; }
public string UserName { get; set; } = string.Empty; public string UserName { get; set; } = string.Empty;

View File

@ -360,6 +360,7 @@ namespace IRaCIS.Core.Application.Services
FileTypeId = trialDocumentNeedConfirmedUserType.TrialDocument.FileTypeId, FileTypeId = trialDocumentNeedConfirmedUserType.TrialDocument.FileTypeId,
FileType = _userInfo.IsEn_Us ? trialDocumentNeedConfirmedUserType.TrialDocument.FileType.Value : trialDocumentNeedConfirmedUserType.TrialDocument.FileType.ValueCN, FileType = _userInfo.IsEn_Us ? trialDocumentNeedConfirmedUserType.TrialDocument.FileType.Value : trialDocumentNeedConfirmedUserType.TrialDocument.FileType.ValueCN,
UpdateTime = trialDocumentNeedConfirmedUserType.TrialDocument.UpdateTime, UpdateTime = trialDocumentNeedConfirmedUserType.TrialDocument.UpdateTime,
IsConfirmed= confirm.ConfirmTime!=null,
@ -395,7 +396,7 @@ namespace IRaCIS.Core.Application.Services
FileType = _userInfo.IsEn_Us ? needConfirmEdUserType.SystemDocument.FileType.Value : needConfirmEdUserType.SystemDocument.FileType.ValueCN, FileType = _userInfo.IsEn_Us ? needConfirmEdUserType.SystemDocument.FileType.Value : needConfirmEdUserType.SystemDocument.FileType.ValueCN,
FileTypeId = needConfirmEdUserType.SystemDocument.FileTypeId, FileTypeId = needConfirmEdUserType.SystemDocument.FileTypeId,
UpdateTime = needConfirmEdUserType.SystemDocument.UpdateTime, UpdateTime = needConfirmEdUserType.SystemDocument.UpdateTime,
IsConfirmed = confirm.ConfirmTime != null,
ConfirmUserId = confirm.ConfirmUserId, ConfirmUserId = confirm.ConfirmUserId,
ConfirmTime = confirm.ConfirmTime, ConfirmTime = confirm.ConfirmTime,

View File

@ -16,6 +16,7 @@ using Microsoft.Extensions.Caching.Memory;
using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Filter;
using DocumentFormat.OpenXml.Drawing; using DocumentFormat.OpenXml.Drawing;
using EasyCaching.Core; using EasyCaching.Core;
using DocumentFormat.OpenXml.Drawing.Charts;
namespace IRaCIS.Application.Services namespace IRaCIS.Application.Services
{ {
@ -1586,7 +1587,7 @@ namespace IRaCIS.Application.Services
}).ToListAsync(); }).ToListAsync();
var markquestionId = inDto.Answers.Select(y => y.Id).ToList(); var markquestionId = inDto.QuestionMarkInfoList.Select(y => y.QuestionId).ToList();
await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId&& markquestionId.Contains(x.QuestionId)); await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId&& markquestionId.Contains(x.QuestionId));
var datetime = DateTime.Now; var datetime = DateTime.Now;
@ -2563,6 +2564,12 @@ namespace IRaCIS.Application.Services
task.SubjectCode = blindSubjectCode.IsNullOrEmpty() ? task.SubjectCode : blindSubjectCode; task.SubjectCode = blindSubjectCode.IsNullOrEmpty() ? task.SubjectCode : blindSubjectCode;
task.ExistsManual = (await GetManualList(new GetManualListInDto() { TrialId = visitTaskInfo.TrialId })).Count > 0; task.ExistsManual = (await GetManualList(new GetManualListInDto() { TrialId = visitTaskInfo.TrialId })).Count > 0;
task.ReadingTaskState = visitTaskInfo.ReadingTaskState; task.ReadingTaskState = visitTaskInfo.ReadingTaskState;
// 添加默认答案
if (inDto.VisitTaskId == null && visitTaskInfo.ReadingTaskState != ReadingTaskState.HaveSigned)
{
await AddDefaultValueToTask(task.VisitTaskId);
}
return task; return task;
} }
@ -2583,7 +2590,6 @@ namespace IRaCIS.Application.Services
int readingMinute = 120; // 为60整数 int readingMinute = 120; // 为60整数
int restMinute = 10; // int restMinute = 10; //
var startReadingTime = _provider.Get<string>(startReadingTimeKey).Value; var startReadingTime = _provider.Get<string>(startReadingTimeKey).Value;
var startRestTime = _provider.Get<string>(startRestTimeKey).Value; var startRestTime = _provider.Get<string>(startRestTimeKey).Value;
if (startReadingTime == null && startRestTime == null) if (startReadingTime == null && startRestTime == null)
@ -2596,7 +2602,7 @@ namespace IRaCIS.Application.Services
int timespanMin = (DateTime.Now - cacheStartRestTime).Minutes; int timespanMin = (DateTime.Now - cacheStartRestTime).Minutes;
if (timespanMin <= restMinute) if (timespanMin <= restMinute)
{ {
throw new BusinessValidationFailedException(_localizer["ReadingImage_NeedRest", readingMinute/60, restMinute]); throw new BusinessValidationFailedException(_localizer["ReadingImage_NeedRest", readingMinute/60m, restMinute]);
} }
else else
{ {
@ -2617,7 +2623,7 @@ namespace IRaCIS.Application.Services
_provider.Remove(startReadingTimeKey); _provider.Remove(startReadingTimeKey);
_provider.Set(startRestTimeKey, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TimeSpan.FromHours(48)); _provider.Set(startRestTimeKey, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TimeSpan.FromHours(48));
throw new BusinessValidationFailedException(_localizer["ReadingImage_NeedRest", readingMinute / 60, restMinute]); throw new BusinessValidationFailedException(_localizer["ReadingImage_NeedRest", readingMinute / 60m, restMinute]);
} }
#endregion #endregion

View File

@ -515,6 +515,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
// PET 5PS评分 // PET 5PS评分
new ReadingCalculateData (){QuestionType=QuestionType.PET5PS,GetStringFun=GetPET5PS,ComputationTrigger=ComputationTrigger.Lesion}, new ReadingCalculateData (){QuestionType=QuestionType.PET5PS,GetStringFun=GetPET5PS,ComputationTrigger=ComputationTrigger.Lesion},
// 修改PET 5PS评分备注
new ReadingCalculateData (){QuestionType=QuestionType.PSScoreRemarks,GetStringFun=GetPET5PSRemark,ComputationTrigger=ComputationTrigger.Lesion},
////与基线相比摄取值变化 ////与基线相比摄取值变化
//new ReadingCalculateData (){QuestionType=QuestionType.UptakeChange,GetStringFun=GetUptakeChange,ComputationTrigger=ComputationTrigger.Lesion}, //new ReadingCalculateData (){QuestionType=QuestionType.UptakeChange,GetStringFun=GetUptakeChange,ComputationTrigger=ComputationTrigger.Lesion},
@ -841,7 +844,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
if ((await _readingTaskQuestionAnswerRepository.CountAsync(x => required.Contains(x.ReadingQuestionTrial.QuestionType) && x.VisitTaskId == inDto.VisitTaskId && x.Answer != string.Empty)) != required.Count()) if ((await _readingTaskQuestionAnswerRepository.CountAsync(x => required.Contains(x.ReadingQuestionTrial.QuestionType) && x.VisitTaskId == inDto.VisitTaskId && x.Answer != string.Empty)) != required.Count())
{ {
errorMassage += _localizer["ReadingCalculate_LuganoPetVerification"] + ","; if (taskinfo.VisitTaskNum != 0m)
{
errorMassage += _localizer["ReadingCalculate_LuganoPetVerification"];
}
else
{
errorMassage += _localizer["ReadingCalculate_LuganoBaseLinePetVerification"];
}
} }
} }
@ -2057,6 +2068,19 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
} }
#endregion #endregion
#region 修改PET 5PS评分备注
/// <summary>
/// 获取PET5PS评分备注
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
public async Task<string> GetPET5PSRemark(ReadingCalculateDto inDto)
{
return string.Empty;
}
#endregion
#region 与基线相比摄取值变化 #region 与基线相比摄取值变化

View File

@ -2244,6 +2244,16 @@ public enum SUVChangeVSBaseline
/// </summary> /// </summary>
EvidenceFocalFDG = 57, EvidenceFocalFDG = 57,
/// <summary>
/// 修改脾脏状态备注
/// </summary>
SplenicStatusRemarks = 58,
/// <summary>
/// 修改PET 5PS评分备注
/// </summary>
PSScoreRemarks = 59,
} }