diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs index a3831c889..e96899bbd 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs @@ -89,6 +89,7 @@ namespace IRaCIS.Core.Application.Service var trialReadingCriterionConfig = await _trialReadingCriterionRepository.Where(t => t.Id == confirmedTrialReadingCriterionId).Select(t => new { TrialReadingCriterionId = t.Id, t.ReadingTool, t.ReadingType, t.IsReadingTaskViewInOrder, t.IsFollowVisitAutoAssign, t.IsFollowGlobalVisitAutoAssign, t.FollowGlobalVisitAutoAssignDefaultState, t.FollowVisitAutoAssignDefaultState, t.TaskAllocateObjEnum }).FirstOrDefaultAsync(); + var visitBlindConfig = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.BlindBaseLineName, t.BlindFollowUpPrefix }).FirstOrDefault(); var dbMaxCode = _visitTaskRepository.Where(t => t.TrialId == trialId).Select(t => t.Code).DefaultIfEmpty().Max(); @@ -104,7 +105,7 @@ namespace IRaCIS.Core.Application.Service - var visitNumList = _subjectVisitRepository.Where(t => t.SubjectId == subjectGroup.SubjectId && t.IsLostVisit == false).Select(t=>t.VisitNum).ToList(); + var visitNumList = _subjectVisitRepository.Where(t => t.SubjectId == subjectGroup.SubjectId && t.IsLostVisit == false ).Select(t=>t.VisitNum).ToList(); foreach (var subjectVisit in subjectGroup.SubjectVisitList) { @@ -114,17 +115,17 @@ namespace IRaCIS.Core.Application.Service if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0) { - blindTaskName = "Baseline"; + blindTaskName = visitBlindConfig.BlindBaseLineName; } else { if (trialReadingCriterionConfig.IsReadingTaskViewInOrder) { - blindTaskName = AppSettings.BlindTaskPrefix + visitNumList.IndexOf(subjectVisit.VisitNum); + blindTaskName = visitBlindConfig.BlindFollowUpPrefix+" " + visitNumList.IndexOf(subjectVisit.VisitNum); } else { - blindTaskName = AppSettings.BlindTaskPrefix; + blindTaskName = visitBlindConfig.BlindFollowUpPrefix; } } @@ -259,6 +260,7 @@ namespace IRaCIS.Core.Application.Service var trialReadingCriterionConfigList = _trialReadingCriterionRepository.Where(t => t.TrialId == trialId && t.ReadingInfoSignTime !=null).Select(t => new { TrialReadingCriterionId= t.Id ,t.ReadingTool,t.ReadingType, t.IsReadingTaskViewInOrder, t.IsFollowVisitAutoAssign, t.IsFollowGlobalVisitAutoAssign, t.FollowGlobalVisitAutoAssignDefaultState, t.FollowVisitAutoAssignDefaultState,t.TaskAllocateObjEnum } ).ToList(); + var visitBlindConfig = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.BlindBaseLineName, t.BlindFollowUpPrefix }).FirstOrDefault(); var dbMaxCode = _visitTaskRepository.Where(t => t.TrialId == trialId).Select(t => t.Code).DefaultIfEmpty().Max(); @@ -293,17 +295,17 @@ namespace IRaCIS.Core.Application.Service if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0) { - blindTaskName = "Baseline"; + blindTaskName = visitBlindConfig.BlindBaseLineName; } else { if (trialReadingCriterionConfig.IsReadingTaskViewInOrder) { - blindTaskName = AppSettings.BlindTaskPrefix + visitNumList.IndexOf(subjectVisit.VisitNum); + blindTaskName = visitBlindConfig.BlindFollowUpPrefix+" " + visitNumList.IndexOf(subjectVisit.VisitNum); } else { - blindTaskName = AppSettings.BlindTaskPrefix; + blindTaskName = visitBlindConfig.BlindFollowUpPrefix; } } diff --git a/IRaCIS.Core.Application/Service/Visit/DTO/VisitPlanViewModel.cs b/IRaCIS.Core.Application/Service/Visit/DTO/VisitPlanViewModel.cs index ac2ee53ad..416c9f934 100644 --- a/IRaCIS.Core.Application/Service/Visit/DTO/VisitPlanViewModel.cs +++ b/IRaCIS.Core.Application/Service/Visit/DTO/VisitPlanViewModel.cs @@ -1,4 +1,5 @@ using IRaCIS.Core.Infrastructure.Extention; +using System.ComponentModel.DataAnnotations; namespace IRaCIS.Application.Contracts { @@ -37,9 +38,24 @@ namespace IRaCIS.Application.Contracts public bool IsHaveFirstGiveMedicineDate { get; set; } = true; + public string BlindBaseLineName { get; set; } + + public string BlindFollowUpPrefix { get; set; } + //public bool SubjectHasAdded { get; set; } } + + public class VisitBlindNameCommand + { + [NotDefault] + public Guid TrialId { get; set; } + public string BlindBaseLineName { get; set; } + + public string BlindFollowUpPrefix { get; set; } + } + + public class VisitPlanCommand { //public string BlindName => "B" + (VisitNum * 10).ToString("D3"); diff --git a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs index 21c0a07c1..671a0803d 100644 --- a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs +++ b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs @@ -66,10 +66,23 @@ namespace IRaCIS.Application.Services TimePointsPerPatient = trial.TimePointsPerPatient, VisitPlanConfirmed = trial.VisitPlanConfirmed, IsHaveFirstGiveMedicineDate = trial.IsHaveFirstGiveMedicineDate, + BlindBaseLineName=trial.BlindBaseLineName, + BlindFollowUpPrefix=trial.BlindFollowUpPrefix, //SubjectHasAdded = _subjectVisitRepository.Any(t => t.TrialId == trialId) }; } + + public async Task UpdateVisitBlindName(VisitBlindNameCommand command) + { + + await _trialRepository.UpdatePartialFromQueryAsync(command.TrialId, t => new Trial() { BlindBaseLineName = command.BlindBaseLineName, BlindFollowUpPrefix = command.BlindFollowUpPrefix }); + + await _trialRepository.SaveChangesAsync(); + + return ResponseOutput.Ok(); + } + /// /// 获取访视计划下拉框列表 /// diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index 54a9302dc..f75b636a8 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -320,6 +320,11 @@ namespace IRaCIS.Core.Domain.Models /// public DateTime? SyncClinicalDataTime { get; set; } + + public string BlindBaseLineName { get; set; } = "Baseline"; + + public string BlindFollowUpPrefix { get; set; } = "Follow-up"; + ///// ///// ͼǷбע /////