访视阅片任务生成和列表展示
parent
49d9cc9a0a
commit
a25cb0827b
|
@ -34,6 +34,16 @@
|
||||||
主要为了 处理项目结束 锁库,不允许操作
|
主要为了 处理项目结束 锁库,不允许操作
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.Service.TaskAllocationRuleService">
|
||||||
|
<summary>
|
||||||
|
TaskAllocationRuleService
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.Service.VisitTaskService">
|
||||||
|
<summary>
|
||||||
|
VisitTaskService
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:IRaCIS.Core.Application.Service.CommonDocumentService">
|
<member name="T:IRaCIS.Core.Application.Service.CommonDocumentService">
|
||||||
<summary>
|
<summary>
|
||||||
系统模板文档配置表
|
系统模板文档配置表
|
||||||
|
@ -1018,6 +1028,18 @@
|
||||||
<param name="path">文件保存路径</param>
|
<param name="path">文件保存路径</param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.ViewModel.TaskAllocationRuleView">
|
||||||
|
<summary> TaskAllocationRuleView 列表视图模型 </summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.ViewModel.TaskAllocationRuleQuery">
|
||||||
|
<summary>TaskAllocationRuleQuery 列表查询参数模型</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.ViewModel.TaskAllocationRuleAddOrEdit">
|
||||||
|
<summary> TaskAllocationRuleAddOrEdit 列表查询参数模型</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.ViewModel.VisitTaskView">
|
||||||
|
<summary> VisitTaskView 列表视图模型 </summary>
|
||||||
|
</member>
|
||||||
<member name="T:IRaCIS.Core.Application.ViewModel.CommonDocumentView">
|
<member name="T:IRaCIS.Core.Application.ViewModel.CommonDocumentView">
|
||||||
<summary> CommonDocumentView 列表视图模型 </summary>
|
<summary> CommonDocumentView 列表视图模型 </summary>
|
||||||
</member>
|
</member>
|
||||||
|
@ -1205,6 +1227,41 @@
|
||||||
<member name="T:IRaCIS.Core.Application.ViewModel.JoinCommand">
|
<member name="T:IRaCIS.Core.Application.ViewModel.JoinCommand">
|
||||||
<summary> TrialUserPreparation AddOrEdit 列表查询参数模型</summary>
|
<summary> TrialUserPreparation AddOrEdit 列表查询参数模型</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.Interfaces.ITaskAllocationRuleService">
|
||||||
|
<summary>
|
||||||
|
ITaskAllocationRuleService
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.Interfaces.ICommonDocumentService">
|
||||||
|
<summary>
|
||||||
|
ICommonDocumentService
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.Interfaces.IFrontAuditConfigService">
|
||||||
|
<summary>
|
||||||
|
IFrontAuditConfigService
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.Interfaces.ISystemAnonymizationService">
|
||||||
|
<summary>
|
||||||
|
ISystemAnonymizationService
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.Interfaces.ISystemNoticeService">
|
||||||
|
<summary>
|
||||||
|
ISystemNoticeService
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.Interfaces.ITrialExternalUserService">
|
||||||
|
<summary>
|
||||||
|
ITrialExternalUserService
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.Interfaces.ITrialUserPreparationService">
|
||||||
|
<summary>
|
||||||
|
ITrialUserPreparation Service
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:IRaCIS.Core.Application.Contracts.EmailNoticeConfigView">
|
<member name="T:IRaCIS.Core.Application.Contracts.EmailNoticeConfigView">
|
||||||
<summary> EmailNoticeConfigView 列表视图模型 </summary>
|
<summary> EmailNoticeConfigView 列表视图模型 </summary>
|
||||||
</member>
|
</member>
|
||||||
|
@ -1751,36 +1808,6 @@
|
||||||
是否有 入组评估确认
|
是否有 入组评估确认
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="T:IRaCIS.Core.Application.Interfaces.ICommonDocumentService">
|
|
||||||
<summary>
|
|
||||||
ICommonDocumentService
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:IRaCIS.Core.Application.Interfaces.IFrontAuditConfigService">
|
|
||||||
<summary>
|
|
||||||
IFrontAuditConfigService
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:IRaCIS.Core.Application.Interfaces.ISystemAnonymizationService">
|
|
||||||
<summary>
|
|
||||||
ISystemAnonymizationService
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:IRaCIS.Core.Application.Interfaces.ISystemNoticeService">
|
|
||||||
<summary>
|
|
||||||
ISystemNoticeService
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:IRaCIS.Core.Application.Interfaces.ITrialExternalUserService">
|
|
||||||
<summary>
|
|
||||||
ITrialExternalUserService
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:IRaCIS.Core.Application.Interfaces.ITrialUserPreparationService">
|
|
||||||
<summary>
|
|
||||||
ITrialUserPreparation Service
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:IRaCIS.Core.Application.Services.SystemBasicDataService">
|
<member name="T:IRaCIS.Core.Application.Services.SystemBasicDataService">
|
||||||
<summary>
|
<summary>
|
||||||
SystemBasicDataService
|
SystemBasicDataService
|
||||||
|
@ -2415,6 +2442,11 @@
|
||||||
处理 访视 末次评估 会影响Subject 状态
|
处理 访视 末次评估 会影响Subject 状态
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:IRaCIS.Core.Application.Triggers.SubjectVisitPassedTrigger">
|
||||||
|
<summary>
|
||||||
|
处理 访视 末次评估 会影响Subject 状态
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:IRaCIS.Core.Application.Triggers.SubjectVisitTrigger">
|
<member name="T:IRaCIS.Core.Application.Triggers.SubjectVisitTrigger">
|
||||||
<summary>
|
<summary>
|
||||||
处理 访视 1、提交状态 2、执行状态 3、最早最晚 拍片日期
|
处理 访视 1、提交状态 2、执行状态 3、最早最晚 拍片日期
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Application.Service.Allocation.DTO
|
||||||
|
{
|
||||||
|
public class AllocationVisitViewModel
|
||||||
|
{
|
||||||
|
|
||||||
|
public Guid SubjectVisitId { get; set; }
|
||||||
|
public Guid SubjectId { get; set; }
|
||||||
|
|
||||||
|
public string BlindName { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public decimal VisitNum { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid SiteId { get; set; }
|
||||||
|
public String TrialSiteCode { get; set; } = String.Empty;
|
||||||
|
public string SubjectCode { get; set; } = String.Empty;
|
||||||
|
|
||||||
|
public string VisitName { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public DateTime? CheckPassedTime { get; set; }
|
||||||
|
|
||||||
|
public bool IsUrgent { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public ReadingCategory ReadingCategoryEnum { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2022-06-07 13:16:33
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
using System;
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
namespace IRaCIS.Core.Application.ViewModel
|
||||||
|
{
|
||||||
|
/// <summary> TaskAllocationRuleView 列表视图模型 </summary>
|
||||||
|
public class TaskAllocationRuleView : TaskAllocationRuleAddOrEdit
|
||||||
|
{
|
||||||
|
|
||||||
|
public Guid CreateUserId { get; set; }
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
public DateTime UpdateTime { get; set; }
|
||||||
|
public Guid UpdateUserId { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
///<summary>TaskAllocationRuleQuery 列表查询参数模型</summary>
|
||||||
|
public class TaskAllocationRuleQuery
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
///<summary> TaskAllocationRuleAddOrEdit 列表查询参数模型</summary>
|
||||||
|
public class TaskAllocationRuleAddOrEdit
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
public int PlanReadingRatio { get; set; }
|
||||||
|
public Guid DoctorId { get; set; }
|
||||||
|
public bool IsEnable { get; set; }
|
||||||
|
public int GroupEnum { get; set; }
|
||||||
|
public int AllocationObjectEnum { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2022-06-07 14:10:54
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
using System;
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
namespace IRaCIS.Core.Application.ViewModel
|
||||||
|
{
|
||||||
|
/// <summary> VisitTaskView 列表视图模型 </summary>
|
||||||
|
public class VisitTaskView
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
|
public string TaskName { get; set; }
|
||||||
|
public string TaskBlindName { get; set; }
|
||||||
|
|
||||||
|
public ReadingCategory ReadingCategory { get; set; }
|
||||||
|
|
||||||
|
public TaskState TaskState { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public DateTime? CheckPassedTime { get; set; }
|
||||||
|
public DateTime? AllocateTime { get; set; }
|
||||||
|
public Guid SubjectId { get; set; }
|
||||||
|
public int Code { get; set; }
|
||||||
|
|
||||||
|
public string TaskCode { get; set; }
|
||||||
|
public bool IsUrgent { get; set; }
|
||||||
|
public int ArmEnum { get; set; }
|
||||||
|
public Guid? DoctorId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Guid CreateUserId { get; set; }
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
public DateTime UpdateTime { get; set; }
|
||||||
|
public Guid UpdateUserId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid SiteId { get; set; }
|
||||||
|
public String TrialSiteCode { get; set; } = String.Empty;
|
||||||
|
public string SubjectCode { get; set; } = String.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class VisitTaskQuery : PageInput
|
||||||
|
{
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
|
public Guid? SiteId { get; set; }
|
||||||
|
|
||||||
|
public Guid? SubjectId { get; set; }
|
||||||
|
|
||||||
|
public string SubjectCode { get; set; } = String.Empty;
|
||||||
|
|
||||||
|
public bool? IsUrgent { get; set; }
|
||||||
|
|
||||||
|
public string TaskName { get; set; } = String.Empty;
|
||||||
|
|
||||||
|
public Guid? DoctorId { get; set; }
|
||||||
|
|
||||||
|
public ReadingCategory? ReadingCategory { get; set; }
|
||||||
|
|
||||||
|
public TaskState? TaskState { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2022-06-07 13:13:19
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
|
namespace IRaCIS.Core.Application.Interfaces
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// ITaskAllocationRuleService
|
||||||
|
/// </summary>
|
||||||
|
public interface ITaskAllocationRuleService
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
Task<List<TaskAllocationRuleView>> GetTaskAllocationRuleList(TaskAllocationRuleQuery queryTaskAllocationRule);
|
||||||
|
|
||||||
|
Task<IResponseOutput> AddOrUpdateTaskAllocationRule(TaskAllocationRuleAddOrEdit addOrEditTaskAllocationRule);
|
||||||
|
|
||||||
|
Task<IResponseOutput> DeleteTaskAllocationRule(Guid taskAllocationRuleId);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2022-06-07 13:14:38
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
using IRaCIS.Core.Domain.Models;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using IRaCIS.Core.Application.Interfaces;
|
||||||
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
|
namespace IRaCIS.Core.Application.Service
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 分配规则
|
||||||
|
/// </summary>
|
||||||
|
[ApiExplorerSettings(GroupName = "Trial")]
|
||||||
|
public class TaskAllocationRuleService : BaseService, ITaskAllocationRuleService
|
||||||
|
{
|
||||||
|
|
||||||
|
private readonly IRepository<TaskAllocationRule> _taskAllocationRuleRepository;
|
||||||
|
|
||||||
|
public TaskAllocationRuleService(IRepository<TaskAllocationRule> taskAllocationRuleRepository)
|
||||||
|
{
|
||||||
|
_taskAllocationRuleRepository = taskAllocationRuleRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<List<TaskAllocationRuleView>> GetTaskAllocationRuleList(TaskAllocationRuleQuery queryTaskAllocationRule)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
var taskAllocationRuleQueryable = _repository.GetQueryable<TaskAllocationRule>()
|
||||||
|
.ProjectTo<TaskAllocationRuleView>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
|
return await taskAllocationRuleQueryable.ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<IResponseOutput> AddOrUpdateTaskAllocationRule(TaskAllocationRuleAddOrEdit addOrEditTaskAllocationRule)
|
||||||
|
{
|
||||||
|
|
||||||
|
var entity = await _taskAllocationRuleRepository.InsertOrUpdateAsync(addOrEditTaskAllocationRule, true);
|
||||||
|
|
||||||
|
return ResponseOutput.Ok(entity.Id.ToString());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[HttpDelete("{taskAllocationRuleId:guid}")]
|
||||||
|
public async Task<IResponseOutput> DeleteTaskAllocationRule(Guid taskAllocationRuleId)
|
||||||
|
{
|
||||||
|
var success = await _taskAllocationRuleRepository.DeleteFromQueryAsync(t => t.Id == taskAllocationRuleId, true);
|
||||||
|
|
||||||
|
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,53 @@
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2022-06-07 14:10:49
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
using IRaCIS.Core.Domain.Models;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using IRaCIS.Core.Application.Interfaces;
|
||||||
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
|
namespace IRaCIS.Core.Application.Service
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 访视读片任务
|
||||||
|
/// </summary>
|
||||||
|
[ApiExplorerSettings(GroupName = "Trial")]
|
||||||
|
public class VisitTaskService : BaseService
|
||||||
|
{
|
||||||
|
|
||||||
|
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||||
|
|
||||||
|
public VisitTaskService(IRepository<VisitTask> visitTaskRepository)
|
||||||
|
{
|
||||||
|
_visitTaskRepository = visitTaskRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<PageOutput<VisitTaskView>> GetVisitTaskList(VisitTaskQuery queryVisitTask)
|
||||||
|
{
|
||||||
|
|
||||||
|
var visitTaskQueryable = _visitTaskRepository
|
||||||
|
.WhereIf(queryVisitTask.TrialId != null, t => t.Subject.SiteId == queryVisitTask.TrialId)
|
||||||
|
.WhereIf(queryVisitTask.SiteId != null, t => t.Subject.SiteId == queryVisitTask.SiteId)
|
||||||
|
.WhereIf(queryVisitTask.SubjectId != null, t => t.SubjectId == queryVisitTask.SubjectId)
|
||||||
|
.WhereIf(queryVisitTask.IsUrgent != null, t => t.IsUrgent == queryVisitTask.IsUrgent)
|
||||||
|
.WhereIf(queryVisitTask.DoctorId != null, t => t.DoctorId == queryVisitTask.DoctorId)
|
||||||
|
.WhereIf(queryVisitTask.ReadingCategory != null, t => t.ReadingCategory == queryVisitTask.ReadingCategory)
|
||||||
|
.WhereIf(queryVisitTask.TaskState != null, t => t.DoctorId == queryVisitTask.TaskState)
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.TaskName.Contains(queryVisitTask.TaskName) || t.TaskBlindName.Contains(queryVisitTask.TaskName))
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => t.Subject.Code.Contains(queryVisitTask.SubjectCode))
|
||||||
|
.ProjectTo<VisitTaskView>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
|
var defalutSortArray = new string[] { nameof(VisitTask.IsUrgent) + " desc", nameof(VisitTask.SubjectId) };
|
||||||
|
|
||||||
|
var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray);
|
||||||
|
|
||||||
|
return pageList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
using AutoMapper;
|
||||||
|
using IRaCIS.Application.Contracts;
|
||||||
|
using IRaCIS.Core.Application.Contracts;
|
||||||
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
|
using IRaCIS.Core.Domain.Models;
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Application.Service
|
||||||
|
{
|
||||||
|
public class AllocationConfig : Profile
|
||||||
|
{
|
||||||
|
public AllocationConfig()
|
||||||
|
{
|
||||||
|
|
||||||
|
CreateMap<TaskAllocationRule, TaskAllocationRuleView>();
|
||||||
|
|
||||||
|
CreateMap<VisitTask, VisitTaskView>()
|
||||||
|
.ForMember(o => o.SiteId, t => t.MapFrom(u => u.Subject.SiteId))
|
||||||
|
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
||||||
|
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -266,7 +266,6 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
public class CheckQuery : PageInput
|
public class CheckQuery : PageInput
|
||||||
{
|
{
|
||||||
public string SubjectInfo { get; set; } = String.Empty;
|
|
||||||
|
|
||||||
//public string VisitPlanInfo { get; set; } = String.Empty;
|
//public string VisitPlanInfo { get; set; } = String.Empty;
|
||||||
public string[]? VisitPlanArray { get; set; }
|
public string[]? VisitPlanArray { get; set; }
|
||||||
|
@ -277,6 +276,8 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
public Guid? SiteId { get; set; }
|
public Guid? SiteId { get; set; }
|
||||||
|
public string SubjectInfo { get; set; } = String.Empty;
|
||||||
|
|
||||||
|
|
||||||
//public bool? IsClosed { get; set; }
|
//public bool? IsClosed { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -370,6 +370,38 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
|
|
||||||
public class ReadMoudleView
|
public class ReadMoudleView
|
||||||
{
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
public Guid SubjectId { get; set; }
|
||||||
|
|
||||||
|
public ModuleTypeEnum ModuleType { get; set; }
|
||||||
|
|
||||||
|
public ReadModuleEnum? Status { get; set; }
|
||||||
|
|
||||||
|
public bool? IsUrgent { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid SubjectVisitId { get; set; }
|
||||||
|
|
||||||
|
public string SubjectVisitName { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid? CutOffVisitId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public string? CutOffVisitName { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid? ReadModuleId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public string? ReadModuleName { get; set; }
|
||||||
|
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
|
||||||
|
public bool IsVisit { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,10 @@ namespace IRaCIS.Application.Services
|
||||||
.WhereIf(dto.SubjectId != null, x => x.Id == dto.SubjectId)
|
.WhereIf(dto.SubjectId != null, x => x.Id == dto.SubjectId)
|
||||||
.WhereIf(dto.TrialSiteCode != null, x => x.TrialSite.TrialSiteCode == dto.TrialSiteCode)
|
.WhereIf(dto.TrialSiteCode != null, x => x.TrialSite.TrialSiteCode == dto.TrialSiteCode)
|
||||||
.WhereIf(dto.SubjectCode != null, x => x.Code == dto.SubjectCode)
|
.WhereIf(dto.SubjectCode != null, x => x.Code == dto.SubjectCode)
|
||||||
.Select(x => new ReadPlanView
|
|
||||||
|
|
||||||
|
|
||||||
|
.Select(x => new ReadPlanView
|
||||||
{
|
{
|
||||||
TrialSiteCode = x.TrialSite.TrialSiteCode,
|
TrialSiteCode = x.TrialSite.TrialSiteCode,
|
||||||
SiteCode = x.TrialSite.TrialSiteCode,
|
SiteCode = x.TrialSite.TrialSiteCode,
|
||||||
|
|
|
@ -43,8 +43,6 @@ namespace IRaCIS.Core.Application.Triggers
|
||||||
|
|
||||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == subjectVisit.SubjectId && t.VisitExecuted == VisitExecutedEnum.Unavailable, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.UnExecuted });
|
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == subjectVisit.SubjectId && t.VisitExecuted == VisitExecutedEnum.Unavailable, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.UnExecuted });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
using EasyCaching.Core;
|
||||||
|
using EntityFrameworkCore.Triggered;
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using IRaCIS.Core.Infrastructure;
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Application.Triggers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 处理 访视 末次评估 会影响Subject 状态
|
||||||
|
/// </summary>
|
||||||
|
public class SubjectVisitPassedTrigger : IAfterSaveTrigger<SubjectVisit>
|
||||||
|
{
|
||||||
|
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||||||
|
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||||
|
|
||||||
|
private readonly IEasyCachingProvider _provider;
|
||||||
|
|
||||||
|
public SubjectVisitPassedTrigger(IRepository<SubjectVisit> subjectVisitRepository, IRepository<VisitTask> visitTaskRepository, IEasyCachingProvider provider)
|
||||||
|
{
|
||||||
|
_subjectVisitRepository = subjectVisitRepository;
|
||||||
|
_visitTaskRepository = visitTaskRepository;
|
||||||
|
_provider = provider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task AfterSave(ITriggerContext<SubjectVisit> context, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
|
||||||
|
var subjectVisit = context.Entity;
|
||||||
|
|
||||||
|
|
||||||
|
if (context.ChangeType == ChangeType.Modified)
|
||||||
|
{
|
||||||
|
|
||||||
|
// 一致性核查通过 生成读片任务
|
||||||
|
if (context.UnmodifiedEntity?.CheckState != subjectVisit.CheckState && subjectVisit.CheckState == CheckStateEnum.CVPassed)
|
||||||
|
{
|
||||||
|
|
||||||
|
var dbMaxCode = _visitTaskRepository.Where(t => t.TrialId == subjectVisit.TrialId).Select(t => t.Code).DefaultIfEmpty().Max();
|
||||||
|
|
||||||
|
var cacheMaxCodeInt = _provider.Get<int>($"{subjectVisit.TrialId }_{ StaticData.CacheKey.TaskMaxCode}").Value;
|
||||||
|
|
||||||
|
int currentMaxCodeInt = cacheMaxCodeInt > dbMaxCode ? cacheMaxCodeInt : dbMaxCode;
|
||||||
|
|
||||||
|
_provider.Set<int>($"{subjectVisit.TrialId }_{ StaticData.CacheKey.TaskMaxCode}", currentMaxCodeInt + 2, TimeSpan.FromMinutes(30));
|
||||||
|
|
||||||
|
|
||||||
|
await _visitTaskRepository.AddAsync(new VisitTask()
|
||||||
|
{
|
||||||
|
TrialId = subjectVisit.TrialId,
|
||||||
|
SubjectId = subjectVisit.SubjectId,
|
||||||
|
IsUrgent = subjectVisit.IsUrgent,
|
||||||
|
TaskBlindName = subjectVisit.BlindName,
|
||||||
|
TaskName = subjectVisit.VisitName,
|
||||||
|
CheckPassedTime = subjectVisit.CheckPassedTime,
|
||||||
|
ArmEnum = 1,
|
||||||
|
Code = currentMaxCodeInt + 1,
|
||||||
|
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)),
|
||||||
|
ReadingCategory = ReadingCategory.Visit
|
||||||
|
});
|
||||||
|
|
||||||
|
await _visitTaskRepository.AddAsync(new VisitTask()
|
||||||
|
{
|
||||||
|
TrialId = subjectVisit.TrialId,
|
||||||
|
SubjectId = subjectVisit.SubjectId,
|
||||||
|
IsUrgent = subjectVisit.IsUrgent,
|
||||||
|
TaskBlindName = subjectVisit.BlindName,
|
||||||
|
TaskName = subjectVisit.VisitName,
|
||||||
|
CheckPassedTime = subjectVisit.CheckPassedTime,
|
||||||
|
ArmEnum = 2,
|
||||||
|
Code = currentMaxCodeInt + 2,
|
||||||
|
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 2, nameof(VisitTask)),
|
||||||
|
ReadingCategory = ReadingCategory.Visit
|
||||||
|
});
|
||||||
|
|
||||||
|
await _visitTaskRepository.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Domain.Share
|
||||||
|
{
|
||||||
|
public enum ReadingCategory
|
||||||
|
{
|
||||||
|
|
||||||
|
Visit=1,
|
||||||
|
|
||||||
|
ReadingPeriod=2,
|
||||||
|
|
||||||
|
Global=3
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum TaskState
|
||||||
|
{
|
||||||
|
|
||||||
|
NotAllocate = 0,
|
||||||
|
|
||||||
|
Allocated = 2,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,71 @@
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2022-06-07 13:13:13
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
using System;
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
namespace IRaCIS.Core.Domain.Models
|
||||||
|
{
|
||||||
|
///<summary>
|
||||||
|
///TaskAllocationRule
|
||||||
|
///</summary>
|
||||||
|
[Table("TaskAllocationRule")]
|
||||||
|
public class TaskAllocationRule : Entity, IAuditUpdate, IAuditAdd
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// CreateUserId
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public Guid CreateUserId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CreateTime
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// UpdateTime
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public DateTime UpdateTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// UpdateUserId
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public Guid UpdateUserId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 计划比率
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public int PlanReadingRatio { get; set; }
|
||||||
|
|
||||||
|
public Guid DoctorId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IsEnable
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public bool IsEnable { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arm 组
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public int GroupEnum { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 分配类型
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public int AllocationObjectEnum { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,117 @@
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||||
|
// 生成时间 2022-06-07 14:09:29
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||||
|
using System;
|
||||||
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
namespace IRaCIS.Core.Domain.Models
|
||||||
|
{
|
||||||
|
///<summary>
|
||||||
|
///VisitTask
|
||||||
|
///</summary>
|
||||||
|
[Table("VisitTask")]
|
||||||
|
public class VisitTask : Entity, IAuditUpdate, IAuditAdd
|
||||||
|
{
|
||||||
|
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CreateUserId
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public Guid CreateUserId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CreateTime
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// UpdateTime
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public DateTime UpdateTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// UpdateUserId
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public Guid UpdateUserId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// TaskName
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public string TaskName { get; set; }=string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// TaskBlindName
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public string TaskBlindName { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ReadingCategory
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public ReadingCategory ReadingCategory { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CheckPassedTime
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? CheckPassedTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AllocateTime
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? AllocateTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SubjectId
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public Guid SubjectId { get; set; }
|
||||||
|
|
||||||
|
public Subject Subject { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Code
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public int Code { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// TaskCode
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public string TaskCode { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IsUrgent
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public bool IsUrgent { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ArmEnum
|
||||||
|
/// </summary>
|
||||||
|
[Required]
|
||||||
|
public int ArmEnum { get; set; }
|
||||||
|
|
||||||
|
public TaskState TaskState { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DoctorId
|
||||||
|
/// </summary>
|
||||||
|
public Guid? DoctorId { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -25,10 +25,7 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid CreateUserId { get; set; }
|
public Guid CreateUserId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 功能模块
|
|
||||||
/// </summary>
|
|
||||||
public Guid? ModuleType { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 盲态访视名
|
/// 盲态访视名
|
||||||
|
@ -56,10 +53,7 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid? SubjectVisitId { get; set; }
|
public Guid? SubjectVisitId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 操作类型
|
|
||||||
/// </summary>
|
|
||||||
public Guid? OptType { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// IP地址
|
/// IP地址
|
||||||
|
@ -92,6 +86,21 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
/// 子类
|
/// 子类
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid? ChildrenType { get; set; }
|
public Guid? ChildrenType { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 对象类型
|
||||||
|
/// </summary>
|
||||||
|
public Guid? ObjectType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 操作类型
|
||||||
|
/// </summary>
|
||||||
|
public Guid? OptType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 功能模块
|
||||||
|
/// </summary>
|
||||||
|
public Guid? ModuleType { get; set; }
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Json 对象
|
/// Json 对象
|
||||||
|
@ -139,10 +148,7 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ResearchProgramNo { get; set; }
|
public string ResearchProgramNo { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 对象类型
|
|
||||||
/// </summary>
|
|
||||||
public Guid? ObjectType { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 标识
|
/// 标识
|
||||||
|
|
|
@ -85,6 +85,10 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
|
|
||||||
return DicomStudyCodePrefix + codeInt.ToString("D5");
|
return DicomStudyCodePrefix + codeInt.ToString("D5");
|
||||||
|
|
||||||
|
case nameof(VisitTask):
|
||||||
|
|
||||||
|
return "W" + codeInt.ToString("D5");
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,8 @@ public static class StaticData
|
||||||
public static class CacheKey
|
public static class CacheKey
|
||||||
{
|
{
|
||||||
public static string StudyMaxCode = "StudyMaxCode";
|
public static string StudyMaxCode = "StudyMaxCode";
|
||||||
|
|
||||||
|
public static string TaskMaxCode = "TaskMaxCode";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -545,7 +545,9 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
public virtual DbSet<TaskAllocationRule> TaskAllocationRule { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<VisitTask> VisitTask { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<#+
|
<#+
|
||||||
public class config
|
public class config
|
||||||
{
|
{
|
||||||
public static readonly string ConnectionString = "Server=123.56.181.144,14333\\MSSQLExpress14;Database=IRaCIS_New;User ID=sa;Password=dev123456DEV;";
|
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";
|
public static readonly string DbDatabase = "IRaCIS_New_Tet";
|
||||||
//表名称用字符串,拼接
|
//表名称用字符串,拼接
|
||||||
public static readonly string TableName = "SystemNotice,SystemNoticeUserRead,SystemNoticeUserType";
|
public static readonly string TableName = "VisitTask";
|
||||||
//具体文件里面 例如service 可以配置是否分页
|
//具体文件里面 例如service 可以配置是否分页
|
||||||
}
|
}
|
||||||
#>
|
#>
|
||||||
|
|
Loading…
Reference in New Issue