irc-netcore-api/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs

368 lines
8.8 KiB
C#

//--------------------------------------------------------------------
// 此代码由T4模板自动生成 byzhouhang 20210918
// 生成时间 2022-06-07 14:10:54
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace IRaCIS.Core.Application.ViewModel
{
public class VisitTaskViewBasic
{
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 string TaskCode { get; set; }
public bool IsUrgent { get; set; }
public Arm ArmEnum { get; set; }
public Guid? DoctorUserId { 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;
}
/// <summary> VisitTaskView 列表视图模型 </summary>
public class VisitTaskView : VisitTaskViewBasic
{
public string UserCode { get; set; }
public string UserName { get; set; }
public string FullName { get; set; }
public string UserTypeShortName { get; set; }
}
public class JudgeVisitTaskView : VisitTaskView
{
public List<HistoryReadingDoctorUser> HistoryReadingDoctorUserList { get; set; }
}
public class ReadingTaskView : VisitTaskView
{
public ReadingTaskState ReadingTaskState { get; set; }
public DateTime? SignTime { get; set; }
//是否回退过
public bool IsReturned { get; set; }
//是否 重阅
public bool IsReReading { get; set; }
public DateTime? SuggesteFinishedTime { get; set; }
}
public class ReReadingTaskView : VisitTaskView
{
public ReadingTaskState ReadingTaskState { get; set; }
public DateTime? SignTime { get; set; }
//重阅原始编号
public string ReReadingOriginalTaskCode { get; set; }
public RequestReReadingType RequestReReadingType { get; set; }
public DateTime? RequestReReadingTime { get; set; }
public string RequestReReadingReason { get; set; } = string.Empty;
public DateTime? SuggesteFinishedTime { get; set; }
public RequestReReadingResult RequestReReadingResultEnum { get; set; }
}
public class IRHaveReadView : VisitTaskViewBasic
{
}
public class IRUnReadSubjectView
{
//public Guid SiteId { get; set; }
//public String TrialSiteCode { get; set; } = String.Empty;
//public Guid TrialId { get; set; }
public Guid SubjectId { get; set; }
public string SubjectCode { get; set; } = String.Empty;
public bool IsUrgent => UnReadTaskList.Any(t => t.IsUrgent);
public int? UnReadTaskCount { get; set; }
public DateTime? SuggesteFinishedTime => UnReadTaskList.Max(t => t.SuggesteFinishedTime);
public List<IRUnreadTaskView> UnReadTaskList { get; set; } = new List<IRUnreadTaskView>();
}
public class IRUnreadTaskView
{
public Guid Id { get; set; }
public bool IsUrgent { get; set; }
public DateTime? SuggesteFinishedTime { get; set; }
}
public class HistoryReadingDoctorUser
{
public string? JudgeTaskCode { get; set; }
public Guid DoctorUserId { get; set; }
public string UserCode { get; set; }
public string UserName { get; set; }
public string FullName { get; set; }
}
public class VisitTaskQuery : PageInput
{
[NotDefault]
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? DoctorUserId { get; set; }
public ReadingCategory? ReadingCategory { get; set; }
public TaskState? TaskState { get; set; }
public ReadingTaskState? ReadingTaskState { get; set; }
public DateTime? BeginAllocateDate { get; set; }
public DateTime? EndAllocateDate { get; set; }
public Guid? OriginalReReadingId { get; set; }
}
public class IRUnReadSubjectQuery:PageInput
{
public Guid TrialId { get; set; }
public string SubjectCode { get; set; }
}
public class SubjectAssignQuery : PageInput
{
[NotDefault]
public Guid TrialId { get; set; }
public Guid? SiteId { get; set; }
public Guid? SubjectId { get; set; }
public string SubjectCode { get; set; } = String.Empty;
public Guid? DoctorUserId { get; set; }
public bool? IsHaveAssigned { get; set; }
public bool? IsHaveApplyedTask { get; set; }
}
public class SubjectAssignView
{
public Guid TrialId { get; set; }
public Guid SiteId { get; set; }
public Guid SubjectId { get; set; }
public String TrialSiteCode { get; set; } = String.Empty;
public string SubjectCode { get; set; } = String.Empty;
public bool IsAssignedDoctorUser { get; set; }
public bool IsAssignDoctorApplyedTask => DoctorUserList.All(t => t.IsAssignDoctorApplyedTask) && DoctorUserList.Count > 0;
public List<Guid> DoctorUserIdList => DoctorUserList.Select(t => t.DoctorUserId).ToList();
public List<AssignDoctorView> DoctorUserList { get; set; } = new List<AssignDoctorView>();
}
public class AssignDoctorView
{
public Guid DoctorUserId { get; set; }
public string UserCode { get; set; }
public string UserName { get; set; }
public string FullName { get; set; }
public string UserTypeShortName { get; set; }
public DateTime? AssignTime { get; set; }
public Arm ArmEnum { get; set; }
public bool IsAssignDoctorApplyedTask { get; set; }
}
public class AssginSubjectDoctorCommand
{
public Guid TrialId { get; set; }
public bool IsReAssign { get; set; }
public List<Guid> SubjectIdList { get; set; }
public List<DoctorArm> DoctorUserIdArmList { get; set; } = new List<DoctorArm>();
}
public class DoctorArm
{
public Guid DoctorUserId { get; set; }
public Arm ArmEnum { get; set; }
}
public class CancelSubjectAssignCommand
{
public Guid TrialId { get; set; }
public List<Guid> SubjectIdList { get; set; }
}
public class AutoAssignResultDTO
{
public Guid DoctorUserId { get; set; }
public int PlanReadingRatio { get; set; }
public List<SubjectArm> SubjectArmList { get; set; } = new List<SubjectArm>();
public int SubjectCount { get; set; }
public int Weight => (SubjectCount - SubjectArmList.Count) * PlanReadingRatio;
}
public class SubjectArm
{
public Guid SubjectId { get; set; }
public Arm ArmEnum { get; set; }
}
public class ApplySubjectCommand
{
public Guid TrialId { get; set; }
public bool? IsJudgeDoctor { get; set; }
public List<Guid> SubjectIdList { get; set; } = new List<Guid>();
}
public class AssignConfirmCommand
{
public Guid TrialId { get; set; }
public List<SubjectDoctorCommand> SubjectDoctorUserList { get; set; } = new List<SubjectDoctorCommand>();
}
public class SubjectDoctorCommand
{
public Guid SubjectId { get; set; }
public List<DoctorArm> DoctorUserIdArmList { get; set; } = new List<DoctorArm>();
}
public class AutoSubjectAssignCommand
{
public Guid TrialId { get; set; }
}
public class AssignSubjectTaskToDoctorCommand
{
public Guid Id { get; set; }
public Guid TrialId { get; set; }
public Guid SubjectId { get; set; }
public Guid? DoctorUserId { get; set; }
public TaskOptType TaskOptType { get; set; }
}
public enum TaskOptType
{
Assign = 1,
ReAssign = 2,
Confirm = 3,
CancelAssign = 4,
}
}