172 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			172 lines
		
	
	
		
			5.1 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
 | |
|     {
 | |
|         [NotDefault]
 | |
|         public Guid SubjectId { get; set; }
 | |
| 
 | |
|         [NotDefault]
 | |
|         public Guid TrialId { get; set; }
 | |
|         [NotDefault]
 | |
|         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 string? FinalSubjectVisitName { 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;
 | |
|     }
 | |
| }
 |