添加阅片期计划
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
9b59a55423
commit
510dfcac30
|
|
@ -14011,6 +14011,13 @@
|
||||||
<param name="indto"></param>
|
<param name="indto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Service.ReadingPeriodSetService.AddReadModule(IRaCIS.Core.Application.Service.Reading.Dto.AddReadModuleInDto)">
|
||||||
|
<summary>
|
||||||
|
生效或者新增访视的时候添加阅片期
|
||||||
|
</summary>
|
||||||
|
<param name="inDto"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ReadingPeriodSetService.GetPreviewTheReadingPlanList(IRaCIS.Core.Application.Service.Reading.Dto.PreviewTheReadingListDto)">
|
<member name="M:IRaCIS.Core.Application.Service.ReadingPeriodSetService.GetPreviewTheReadingPlanList(IRaCIS.Core.Application.Service.Reading.Dto.PreviewTheReadingListDto)">
|
||||||
<summary>
|
<summary>
|
||||||
获取选中的计划 (增加标准不影响 因为阅片期设置关联了标准)
|
获取选中的计划 (增加标准不影响 因为阅片期设置关联了标准)
|
||||||
|
|
@ -14052,6 +14059,13 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Service.ReadingPeriodSetService.AddReadingPlanAndGenerateReadModule(IRaCIS.Core.Application.Service.Reading.Dto.AddReadingPlanAndGenerateReadModuleInDto)">
|
||||||
|
<summary>
|
||||||
|
添加阅片计划并生成阅片期(在阅片期已经生效的情况下添加)
|
||||||
|
</summary>
|
||||||
|
<param name="inDto"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ReadingPeriodSetService.SetBatchAddOrRemoveReadingPlan(IRaCIS.Core.Application.Service.Reading.Dto.SetBatchAddOrRemoveReadingPlanInDto)">
|
<member name="M:IRaCIS.Core.Application.Service.ReadingPeriodSetService.SetBatchAddOrRemoveReadingPlan(IRaCIS.Core.Application.Service.Reading.Dto.SetBatchAddOrRemoveReadingPlanInDto)">
|
||||||
<summary>
|
<summary>
|
||||||
设置加入或者移除阅片计划
|
设置加入或者移除阅片计划
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,13 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
public Guid? TrialReadingCriterionId { get; set; }
|
public Guid? TrialReadingCriterionId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class AddReadingPlanAndGenerateReadModuleInDto
|
||||||
|
{
|
||||||
|
public Guid ReadingPeriodSetId { get; set; }
|
||||||
|
|
||||||
|
public List<Guid> SubjectVisitIdList { get; set; } = new List<Guid>();
|
||||||
|
}
|
||||||
|
|
||||||
public class SetBatchAddOrRemoveReadingPlanInDto
|
public class SetBatchAddOrRemoveReadingPlanInDto
|
||||||
{
|
{
|
||||||
public List<Guid> SubjectVisitIdList { get; set; } = new List<Guid>();
|
public List<Guid> SubjectVisitIdList { get; set; } = new List<Guid>();
|
||||||
|
|
@ -404,6 +411,31 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
public ReadingPeriodStatus IsTakeEffect { get; set; }
|
public ReadingPeriodStatus IsTakeEffect { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class AddReadModuleInDto
|
||||||
|
{
|
||||||
|
public Guid TrialReadingCriterionId { get; set; }
|
||||||
|
|
||||||
|
public Guid ReadingPeriodSetId { get; set; }
|
||||||
|
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
|
public string ReadingPeriodName { get; set; }
|
||||||
|
|
||||||
|
public ReadingSetType ReadingSetType { get; set; }
|
||||||
|
|
||||||
|
public List<AddReadModuleVisitInfo> VisitInfoList { get; set; } = new List<AddReadModuleVisitInfo>();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AddReadModuleVisitInfo
|
||||||
|
{
|
||||||
|
public Guid SubjectId { get; set; }
|
||||||
|
public bool IsUrgent { get; set; }
|
||||||
|
public Guid SubjectVisitId { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public class ReadingPeriodSetQuery : PageInput
|
public class ReadingPeriodSetQuery : PageInput
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,12 @@
|
||||||
using IRaCIS.Core.Application.Filter;
|
using IRaCIS.Core.Application.Filter;
|
||||||
using IRaCIS.Core.Application.Service.Reading.Dto;
|
using IRaCIS.Core.Application.Service.Reading.Dto;
|
||||||
using IRaCIS.Core.Application.ViewModel;
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
|
using IRaCIS.Core.Domain.Models;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
using IRaCIS.Core.Infrastructure;
|
using IRaCIS.Core.Infrastructure;
|
||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using NPOI.Util;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Service
|
namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
|
|
@ -74,6 +76,18 @@ namespace IRaCIS.Core.Application.Service
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var entity = (await _readingPeriodSetRepository.Where(t => t.Id == addOrEditReadingPeriodSet.Id, true).Include(t => t.ReadingPeriodSites).Include(x => x.ReadingPeriodPlanList).FirstOrDefaultAsync()).IfNullThrowException();
|
var entity = (await _readingPeriodSetRepository.Where(t => t.Id == addOrEditReadingPeriodSet.Id, true).Include(t => t.ReadingPeriodSites).Include(x => x.ReadingPeriodPlanList).FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
|
|
||||||
|
// 已生效的时候就不可能修改 只能是添加计划和生成模块
|
||||||
|
if (entity.IsTakeEffect == ReadingPeriodStatus.TakeEffect)
|
||||||
|
{
|
||||||
|
await AddReadingPlanAndGenerateReadModule(new AddReadingPlanAndGenerateReadModuleInDto()
|
||||||
|
{
|
||||||
|
ReadingPeriodSetId = addOrEditReadingPeriodSet.Id.Value,
|
||||||
|
SubjectVisitIdList = addOrEditReadingPeriodSet.SubjectVisitIds
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
_mapper.Map(addOrEditReadingPeriodSet, entity);
|
_mapper.Map(addOrEditReadingPeriodSet, entity);
|
||||||
|
|
||||||
entity.ReadingPeriodSites = addOrEditReadingPeriodSet.SiteIds.Select(x => new ReadingPeriodSite()
|
entity.ReadingPeriodSites = addOrEditReadingPeriodSet.SiteIds.Select(x => new ReadingPeriodSite()
|
||||||
|
|
@ -121,6 +135,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
var success = await _readingPeriodSetRepository.SaveChangesAsync();
|
var success = await _readingPeriodSetRepository.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
|
||||||
return ResponseOutput.Ok(entity.Id);
|
return ResponseOutput.Ok(entity.Id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -178,28 +194,106 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
await AddReadModule(new AddReadModuleInDto()
|
||||||
|
{
|
||||||
|
ReadingPeriodName = readingPeriodSet.ReadingPeriodName,
|
||||||
|
ReadingSetType = readingPeriodSet.ReadingSetType,
|
||||||
|
TrialId = readingPeriodSet.TrialId,
|
||||||
|
ReadingPeriodSetId= readingPeriodSet.Id,
|
||||||
|
TrialReadingCriterionId = readingPeriodSet.TrialReadingCriterionId,
|
||||||
|
VisitInfoList = plans.Select(x => new AddReadModuleVisitInfo()
|
||||||
|
{
|
||||||
|
SubjectId = x.SubjectVisit.SubjectId,
|
||||||
|
SubjectVisitId = x.SubjectVisitId,
|
||||||
|
|
||||||
|
IsUrgent = false
|
||||||
|
}).ToList()
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
List<Guid> readModuleIds = await _readModuleRepository.Where(x => x.ReadingPeriodSetId == indto.Id).Select(x => x.Id).ToListAsync();
|
||||||
|
|
||||||
|
if (await _visitTaskRepository.AnyAsync(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && readModuleIds.Contains(x.SouceReadModuleId ?? default(Guid))
|
||||||
|
&& x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId
|
||||||
|
&& x.ReadingTaskState == ReadingTaskState.HaveSigned && x.TaskState == TaskState.Effect))
|
||||||
|
{
|
||||||
|
//---当前标准阅片已生成任务并且阅片完成,撤销失败。
|
||||||
|
throw new BusinessValidationFailedException(_localizer["ReadingPeriodSet_TaskCompletedCannotRevoke"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && readModuleIds.Contains(x.SouceReadModuleId ?? default(Guid)), x => new VisitTask()
|
||||||
|
{
|
||||||
|
TaskState = TaskState.Adbandon
|
||||||
|
});
|
||||||
|
|
||||||
|
await _readModuleRepository.UpdatePartialFromQueryAsync(x => x.ReadingPeriodSetId == indto.Id, x => new ReadModule()
|
||||||
|
{
|
||||||
|
|
||||||
|
IsDeleted = true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var readQuery = await _readingPeriodSetRepository.UpdatePartialFromQueryAsync(indto.Id, x => new ReadingPeriodSet()
|
||||||
|
{
|
||||||
|
IsTakeEffect = indto.IsTakeEffect,
|
||||||
|
EffectOfTime = indto.IsTakeEffect == ReadingPeriodStatus.TakeEffect ? DateTime.Now : null,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (indto.IsTakeEffect == ReadingPeriodStatus.TakeEffect)
|
||||||
|
{
|
||||||
|
await _readingPeriodPlanRepository.UpdatePartialFromQueryAsync(x => x.ReadingPeriodSetId == indto.Id, x => new ReadingPeriodPlan()
|
||||||
|
{
|
||||||
|
IsGenerate = true,
|
||||||
|
GeneratedTime = DateTime.Now
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var result = await _readingPeriodSetRepository.SaveChangesAsync();
|
||||||
|
return ResponseOutput.Result(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 生效或者新增访视的时候添加阅片期
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task AddReadModule(AddReadModuleInDto inDto)
|
||||||
|
{
|
||||||
List<ReadModule> readModules = new List<ReadModule>();
|
List<ReadModule> readModules = new List<ReadModule>();
|
||||||
foreach (var item in plans)
|
foreach (var item in inDto.VisitInfoList)
|
||||||
{
|
{
|
||||||
readModules.Add(new ReadModule()
|
readModules.Add(new ReadModule()
|
||||||
{
|
{
|
||||||
Id = NewId.NextGuid(),
|
Id = NewId.NextGuid(),
|
||||||
SubjectId = item.SubjectVisit.SubjectId,
|
SubjectId = item.SubjectId,
|
||||||
ModuleType = item.ReadingPeriodSet.ReadingSetType == ReadingSetType.ImageReading ? ModuleTypeEnum.Global : ModuleTypeEnum.Oncology,
|
ModuleType = inDto.ReadingSetType == ReadingSetType.ImageReading ? ModuleTypeEnum.Global : ModuleTypeEnum.Oncology,
|
||||||
IsUrgent = item.SubjectVisit.IsUrgent,
|
IsUrgent = item.IsUrgent,
|
||||||
ReadModuleAddTypeEnum = ReadModuleAddType.ReadingPlan,
|
ReadModuleAddTypeEnum = ReadModuleAddType.ReadingPlan,
|
||||||
ModuleName = item.ReadingPeriodSet.ReadingPeriodName,
|
ModuleName = inDto.ReadingPeriodName,
|
||||||
SubjectVisitId = item.SubjectVisitId,
|
SubjectVisitId = item.SubjectVisitId,
|
||||||
ReadingSetType = item.ReadingPeriodSet.ReadingSetType,
|
ReadingSetType = inDto.ReadingSetType,
|
||||||
ReadingPeriodSetId = item.ReadingPeriodSet.Id,
|
ReadingPeriodSetId = inDto.ReadingPeriodSetId,
|
||||||
ReadingStatus = ReadingStatusEnum.TaskAllocate,
|
ReadingStatus = ReadingStatusEnum.TaskAllocate,
|
||||||
TrialId = readingPeriodSet.TrialId,
|
TrialId = inDto.TrialId,
|
||||||
//VisitNum = item.SubjectVisit.VisitNum,
|
//VisitNum = item.SubjectVisit.VisitNum,
|
||||||
|
|
||||||
//增加标准
|
//增加标准
|
||||||
TrialReadingCriterionId = readingPeriodSet.TrialReadingCriterionId
|
TrialReadingCriterionId = inDto.TrialReadingCriterionId
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
;
|
||||||
|
|
||||||
await _readModuleRepository.AddRangeAsync(readModules);
|
await _readModuleRepository.AddRangeAsync(readModules);
|
||||||
|
|
||||||
|
|
@ -207,13 +301,13 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
// 判断是否要添加肿瘤学或者全局阅片任务
|
// 判断是否要添加肿瘤学或者全局阅片任务
|
||||||
var subjectVisitIds = readModules.Select(x => x.SubjectVisitId).ToList();
|
var subjectVisitIds = readModules.Select(x => x.SubjectVisitId).ToList();
|
||||||
switch (readingPeriodSet.ReadingSetType)
|
switch (inDto.ReadingSetType)
|
||||||
{
|
{
|
||||||
case ReadingSetType.ImageReading:
|
case ReadingSetType.ImageReading:
|
||||||
//增加标准
|
//增加标准
|
||||||
var taskInfoList = await _visitTaskRepository.Where(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && subjectVisitIds.Contains(x.SourceSubjectVisitId ?? default(Guid)) &&
|
var taskInfoList = await _visitTaskRepository.Where(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && subjectVisitIds.Contains(x.SourceSubjectVisitId ?? default(Guid)) &&
|
||||||
|
|
||||||
x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId &&
|
x.TrialReadingCriterionId == inDto.TrialReadingCriterionId &&
|
||||||
x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned && !x.IsAnalysisCreate).ToListAsync();
|
x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned && !x.IsAnalysisCreate).ToListAsync();
|
||||||
|
|
||||||
foreach (var item in taskInfoList)
|
foreach (var item in taskInfoList)
|
||||||
|
|
@ -255,17 +349,17 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == readingPeriodSet.TrialReadingCriterionId).Select(x => new
|
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => new
|
||||||
{
|
{
|
||||||
x.ReadingType,
|
x.ReadingType,
|
||||||
|
|
||||||
}).FirstNotNullAsync();
|
}).FirstNotNullAsync();
|
||||||
|
|
||||||
//增加标准
|
//增加标准
|
||||||
var globalModuleIds = await _readModuleRepository.Where(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && subjectVisitIds.Contains(x.SubjectVisitId) && x.ModuleType == ModuleTypeEnum.Global).Select(x => x.Id).ToListAsync();
|
var globalModuleIds = await _readModuleRepository.Where(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && subjectVisitIds.Contains(x.SubjectVisitId) && x.ModuleType == ModuleTypeEnum.Global).Select(x => x.Id).ToListAsync();
|
||||||
|
|
||||||
//增加标准
|
//增加标准
|
||||||
var globalTaskInfo = await _visitTaskRepository.Where(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && globalModuleIds.Contains(x.SouceReadModuleId ?? default(Guid))
|
var globalTaskInfo = await _visitTaskRepository.Where(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && globalModuleIds.Contains(x.SouceReadModuleId ?? default(Guid))
|
||||||
|
|
||||||
&& x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned && !x.IsAnalysisCreate).GroupBy(x => new { x.SouceReadModuleId }).Select(x =>
|
&& x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned && !x.IsAnalysisCreate).GroupBy(x => new { x.SouceReadModuleId }).Select(x =>
|
||||||
new
|
new
|
||||||
|
|
@ -292,7 +386,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
OriginalVisitId = item.TaskId,
|
OriginalVisitId = item.TaskId,
|
||||||
ReadingCategory = GenerateTaskCategory.Oncology,
|
ReadingCategory = GenerateTaskCategory.Oncology,
|
||||||
TrialId = readingPeriodSet.TrialId,
|
TrialId = inDto.TrialId,
|
||||||
ReadingGenerataTaskList = new List<ReadingGenerataTaskDTO>() {
|
ReadingGenerataTaskList = new List<ReadingGenerataTaskDTO>() {
|
||||||
new ReadingGenerataTaskDTO()
|
new ReadingGenerataTaskDTO()
|
||||||
{
|
{
|
||||||
|
|
@ -315,50 +409,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
List<Guid> readModuleIds = await _readModuleRepository.Where(x => x.ReadingPeriodSetId == indto.Id).Select(x => x.Id).ToListAsync();
|
|
||||||
|
|
||||||
if (await _visitTaskRepository.AnyAsync(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && readModuleIds.Contains(x.SouceReadModuleId ?? default(Guid))
|
|
||||||
&& x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId
|
|
||||||
&& x.ReadingTaskState == ReadingTaskState.HaveSigned && x.TaskState == TaskState.Effect))
|
|
||||||
{
|
|
||||||
//---当前标准阅片已生成任务并且阅片完成,撤销失败。
|
|
||||||
throw new BusinessValidationFailedException(_localizer["ReadingPeriodSet_TaskCompletedCannotRevoke"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && readModuleIds.Contains(x.SouceReadModuleId ?? default(Guid)), x => new VisitTask()
|
|
||||||
{
|
|
||||||
TaskState = TaskState.Adbandon
|
|
||||||
});
|
|
||||||
|
|
||||||
await _readModuleRepository.UpdatePartialFromQueryAsync(x => x.ReadingPeriodSetId == indto.Id, x => new ReadModule()
|
|
||||||
{
|
|
||||||
|
|
||||||
IsDeleted = true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var readQuery = await _readingPeriodSetRepository.UpdatePartialFromQueryAsync(indto.Id, x => new ReadingPeriodSet()
|
|
||||||
{
|
|
||||||
IsTakeEffect = indto.IsTakeEffect,
|
|
||||||
EffectOfTime = indto.IsTakeEffect == ReadingPeriodStatus.TakeEffect ? DateTime.Now : null,
|
|
||||||
});
|
|
||||||
|
|
||||||
var result = await _readingPeriodSetRepository.SaveChangesAsync();
|
|
||||||
return ResponseOutput.Result(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -532,6 +583,51 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 添加阅片计划并生成阅片期(在阅片期已经生效的情况下添加)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<IResponseOutput> AddReadingPlanAndGenerateReadModule(AddReadingPlanAndGenerateReadModuleInDto inDto)
|
||||||
|
{
|
||||||
|
var readingPeriodSet = await _readingPeriodSetRepository.Where(x => x.Id == inDto.ReadingPeriodSetId).FirstNotNullAsync();
|
||||||
|
List<ReadingPeriodPlan> plans = inDto.SubjectVisitIdList.Select(x => new ReadingPeriodPlan()
|
||||||
|
{
|
||||||
|
Id = NewId.NextGuid(),
|
||||||
|
SubjectVisitId = x,
|
||||||
|
ReadingPeriodSetId = inDto.ReadingPeriodSetId,
|
||||||
|
IsGenerate=true,
|
||||||
|
GeneratedTime=DateTime.Now
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
await _readingPeriodPlanRepository.AddRangeAsync(plans);
|
||||||
|
|
||||||
|
await _readingPeriodPlanRepository.SaveChangesAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var subejctVisits = await _subjectVisitRepository.Where(x => inDto.SubjectVisitIdList.Contains(x.Id)).ToListAsync();
|
||||||
|
|
||||||
|
await AddReadModule(new AddReadModuleInDto()
|
||||||
|
{
|
||||||
|
ReadingPeriodName = readingPeriodSet.ReadingPeriodName,
|
||||||
|
ReadingSetType = readingPeriodSet.ReadingSetType,
|
||||||
|
TrialId = readingPeriodSet.TrialId,
|
||||||
|
ReadingPeriodSetId = readingPeriodSet.Id,
|
||||||
|
TrialReadingCriterionId = readingPeriodSet.TrialReadingCriterionId,
|
||||||
|
VisitInfoList = subejctVisits.Select(x => new AddReadModuleVisitInfo()
|
||||||
|
{
|
||||||
|
SubjectId = x.SubjectId,
|
||||||
|
SubjectVisitId = x.Id,
|
||||||
|
IsUrgent = x.IsUrgent,
|
||||||
|
|
||||||
|
}).ToList()
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置加入或者移除阅片计划
|
/// 设置加入或者移除阅片计划
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -19,4 +19,14 @@ public class ReadingPeriodPlan : BaseFullDeleteAuditEntity
|
||||||
|
|
||||||
[Comment("访视")]
|
[Comment("访视")]
|
||||||
public Guid SubjectVisitId { get; set; }
|
public Guid SubjectVisitId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否生成
|
||||||
|
/// </summary>
|
||||||
|
public bool IsGenerate { get; set; } = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 生效时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? GeneratedTime { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
20973
IRaCIS.Core.Infra.EFCore/Migrations/20251103062214_ReadingPeriodPlan.Designer.cs
generated
Normal file
20973
IRaCIS.Core.Infra.EFCore/Migrations/20251103062214_ReadingPeriodPlan.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,40 @@
|
||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class ReadingPeriodPlan : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AddColumn<DateTime>(
|
||||||
|
name: "GeneratedTime",
|
||||||
|
table: "ReadingPeriodPlan",
|
||||||
|
type: "datetime2",
|
||||||
|
nullable: true);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<bool>(
|
||||||
|
name: "IsGenerate",
|
||||||
|
table: "ReadingPeriodPlan",
|
||||||
|
type: "bit",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "GeneratedTime",
|
||||||
|
table: "ReadingPeriodPlan");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "IsGenerate",
|
||||||
|
table: "ReadingPeriodPlan");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -5948,9 +5948,15 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
b.Property<DateTime?>("DeletedTime")
|
b.Property<DateTime?>("DeletedTime")
|
||||||
.HasColumnType("datetime2");
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("GeneratedTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
b.Property<bool>("IsDeleted")
|
b.Property<bool>("IsDeleted")
|
||||||
.HasColumnType("bit");
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<bool>("IsGenerate")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
b.Property<Guid>("ReadingPeriodSetId")
|
b.Property<Guid>("ReadingPeriodSetId")
|
||||||
.HasColumnType("uniqueidentifier")
|
.HasColumnType("uniqueidentifier")
|
||||||
.HasComment("阅片期配置ID");
|
.HasComment("阅片期配置ID");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue