irc-netcore-api/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs

169 lines
5.0 KiB
C#

using System;
using IRaCIS.Core.Infrastructure.Extention;
using IRaCIS.Core.Domain.Share;
using System.ComponentModel.DataAnnotations;
namespace IRaCIS.Application.Contracts
{
public class SubjectCommand
{
public Guid? Id { get; set; }
public string Code { get; set; } = String.Empty;
public int? Age { get; set; }
public string Sex { get; set; } = string.Empty;
public Guid SiteId { get; set; }
public Guid TrialId { get; set; }
public string MedicalNo { get; set; } = string.Empty;
public string ShortName { get; set; } = string.Empty;
public string Height { get; set; } = string.Empty;
public string Weight { get; set; } = string.Empty;
public DateTime? BirthDate { get; set; }
public DateTime? SignDate { get; set; }
public bool IsUrgent { get; set; }
public DateTime? FirstGiveMedicineTime { get; set; }
//public DateTime? OutEnrollmentTime { get; set; }
//public DateTime? VisitOverTime { get; set; }
//public SubjectStatus Status { get; set; }
//public string Reason { get; set; } = string.Empty;
}
public class SubjectStatusChangeCommand
{
public Guid SubjectId { get; set; }
public Guid? TrialId { get; set; }
public Guid? SiteId { get; set; }
public SubjectStatus Status { get; set; }
public DateTime? OutEnrollmentTime { get; set; }
public DateTime? VisitOverTime { get; set; }
public string Reason { get; set; } = string.Empty;
public Guid? FinalSubjectVisitId { get; set; }
}
public class TrialSubjectConfig
{
public string SubjectCodeRule { get; set; } = string.Empty;
public bool IsNoticeSubjectCodeRule { get; set; }
public bool IsHaveFirstGiveMedicineDate { get; set; }
public bool IsEnrollementQualificationConfirm { get; set; }
public bool IsHaveSubjectAge { get; set; }
public string OutEnrollmentVisitName { get; set; } = string.Empty;
public bool VisitPlanConfirmed { get; set; }
public bool IsSubjectSexView { get; set; } = false;
public bool IsSubjectExpeditedView { get; set; } = false;
public bool IsSubjectSecondCodeView { get; set; } = false;
}
public class SubjectQueryView: SubjectCommand
{
public DateTime? OutEnrollmentTime { get; set; }
public DateTime? VisitOverTime { get; set; }
public SubjectStatus Status { get; set; }
public string Reason { get; set; } = string.Empty;
//public int? StudyCount { get; set; }
//public int? VisitCount { get; set; }
//public int? PlanVisitCount { get; set; }
//public int? InPlanDicomStudyUploadCount { get; set; }
//public int? OutPlanDicomStudyUploadCount { get; set; }
//public int? InPlanNoneDicomStudyUploadCount { get; set; }
//public int? OutPlanNoneDicomStudyUploadCount { get; set; }
public Guid? FinalSubjectVisitId { get; set; }
public int? TotalVisitCount => OutPlanVisitCount + InPlanVisitCount;
public int? TotalVisitSubmmitCount => OutPlanVisitSubmmitCount + InPlanVisitSubmmitCount;
public int? OutPlanVisitCount { get; set; }
public int? OutPlanVisitSubmmitCount { get; set; }
public int? InPlanVisitCount { get; set; }
public int? InPlanVisitSubmmitCount { get; set; }
public int? MissingSubmmitCount { get; set; }
public int? LostVisitCount { get; set; }
public DateTime? CreateTime { get; set; }
public DateTime? UpdateTime { get; set; }
public string SiteName { get; set; } = string.Empty;
public string TrialSiteCode { get; set; } = string.Empty;
public string LatestVisitName { get; set; } = string.Empty;
public string LatestBlindName { get; set; } = string.Empty;
public bool IsMissingImages => MissingSubmmitCount > 0;
public Guid LatestSubmitSubjectVisitId { get; set; }
}
public class SubjectQueryParam : PageInput
{
[NotDefault]
public Guid TrialId { get; set; }
public string Code { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public string Sex { get; set; } = string.Empty;
public Guid? SiteId { get; set; }
public SubjectStatus? Status { get; set; }
}
public class SubjectSelect
{
public Guid SubjectId { get; set; }
public string Name => LastName + " / " + FirstName;
public string FirstName { get; set; } = string.Empty;
public string LastName { get; set; } = string.Empty;
public string Code { get; set; } = string.Empty;
public string Sex { get; set; } = string.Empty;
public int? Age { get; set; }
public SubjectStatus Status { get; set; }
public DateTime? FirstGiveMedicineTime { get; set; }
public string MRN { get; set; } = string.Empty;
}
}