using System; using System.Collections.Generic; using IRaCIS.Core.Application.Contracts.RequestAndResponse; using IRaCIS.Core.Domain.Share; namespace IRaCIS.Application.ViewModels { public class TrialDTO : TrialDbModel { public string ReviewType { get; set; } public string Criterion { get; set; } public string CRO { get; set; } public string Sponsor { get; set; } public int TrialStatus { get; set; } public string TrialStatusStr { get; set; } = string.Empty; public DateTime? CreateTime { get; set; } } public class TrialDbModel { public Guid Id { get; set; } public string Code { get; set; } = string.Empty; public string Indication { get; set; } = string.Empty; public string Phase { get; set; } = string.Empty; public Guid? ReviewTypeId { get; set; } = Guid.Empty; public Guid? CriterionId { get; set; } = Guid.Empty; public Guid? CROId { get; set; } = Guid.Empty; public Guid? SponsorId { get; set; } = Guid.Empty; public Guid? ReviewModeId { get; set; } = Guid.Empty; public string Note { get; set; } = string.Empty; public string TurnaroundTime { get; set; } = string.Empty; public int ExpectedPatients { get; set; } public int TimePointsPerPatient { get; set; } public int GRRReviewers { get; set; } public int TotalReviewers { get; set; } public string ReviewProtocol { get; set; } = string.Empty; public string MessageFromClient { get; set; } = string.Empty; public string ReviewProtocolName { get; set; } = string.Empty; public string MessageFromClientName { get; set; } = string.Empty; public int? Expedited { get; set; } public int AttendedReviewerType { get; set; } public bool VisitPlanConfirmed { get; set; } } public class TrialDetailDTO : TrialDTO { public TrialDetailDTO() { ModalityIds = new List(); ModalityList = new List(); } public string ReviewMode { get; set; } public string ReviewProtocolFullPath => SystemConfig.RootUrl + ReviewProtocol; public string MessageFromClientFullPath => SystemConfig.RootUrl + MessageFromClient; public string SowFullPath => SystemConfig.RootUrl + SowPath; public List ModalityList { get; set; } //成像设备 多选 public List ModalityIds { get; set; } //统计字段 public string SowName { get; set; } public string SowPath { get; set; } public bool IsLocked { get; set; } public int EnrollStatus { get; set; } //public bool LockTrialCode { get; set; } //public int Submitted { get; set; } //public int Approved { get; set; } //public int Trained { get; set; } //public int Reading { get; set; } public int SubjectCount { get; set; } //public int VisitCount { get; set; } public int StudyCount { get; set; } public int SiteCount { get; set; } } public class TrialAndTrialStateVieModel { public TrialDetailDTO TrialView { get; set; } public int TrialMaxState { get; set; } } public class TrialCommand : TrialDbModel { public Guid UserId { get; set; } public List ModalityIds { get; set; } = new List(); } public class TrialQueryDTO : PageInput { public TrialQueryDTO() { ModalityIds = new List(); } public Guid? CriterionId { get; set; } = Guid.Empty; public Guid? SponsorId { get; set; } = Guid.Empty; public Guid? CROId { get; set; } = Guid.Empty; public Guid? ReviewTypeId { get; set; } = Guid.Empty; public List ModalityIds { get; set; } public string Code { get; set; } = string.Empty; public string Indication { get; set; } = string.Empty; public string Phase { get; set; } = string.Empty; public string TrialStatus { get; set; } public DateTime? BeginDate { get; set; } public DateTime? EndDate { get; set; } public int? Expedited { get; set; } public int? AttendedReviewerType { get; set; } } public class ReviewerTrialQueryDTO : PageInput { public string Code { get; set; } = string.Empty; public string Indication { get; set; } = string.Empty; public int? EnrollStatus { get; set; } public int? Expedited { get; set; } } public class TrialByStatusQueryDTO : PageInput { public Guid DoctorId { get; set; } public int Status { get; set; } } }