using IRaCIS.Core.Domain.Share; using Newtonsoft.Json; namespace IRaCIS.Application.Contracts { public class TrialBaseModel { public int? PlanSiteCount { get; set; } public int? PlanVisitCount { get; set; } public TrialType TrialType { get; set; } public Guid? Id { get; set; } public string TrialCode { get; set; } = string.Empty; public string Indication { get; set; } = string.Empty; public int IndicationEnum { get; set; } //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 ProjectCycle { get; set; } = string.Empty; public int ExpectedPatients { get; set; } public decimal TimePointsPerPatient { get; set; } public int? GRRReviewers { get; set; } public int TotalReviewers { get; set; } public int? Expedited { get; set; } //研究方案号 public string ResearchProgramNo { get; set; } = string.Empty; //实验名称 public string ExperimentName { get; set; } = string.Empty; //主研单位 public string MainResearchUnit { get; set; } = string.Empty; // 负责人PI public string HeadPI { get; set; } = string.Empty; //public Guid DeclarationTypeId { get; set; } //public int? AttendedReviewerType { get; set; } public Guid IndicationTypeId { get; set; } public Guid? PhaseId { get; set; } public List DeclarationTypeEnumList { get; set; } public List AttendedReviewerTypeEnumList { get; set; } public string DeclarationTypes { get; set; } = string.Empty; public string AttendedReviewerTypes { get; set; } = string.Empty; } public class QuestionTypeDto { public Guid DictionaryId { get; set; } public string Value { get; set; } = string.Empty; public string ValueCN { get; set; } = string.Empty; public bool IsSelect { get; set; } } public class TrialSelectDTO { public Guid Id { get; set; } public Guid TrialId => Id; public string ExperimentName { get; set; } = string.Empty; public string TrialCode { get; set; } = string.Empty; public string Indication { get; set; } = string.Empty; public string ResearchProgramNo { get; set; } = string.Empty; public string CriterionName { get; set; } = string.Empty; } public class TrialModalitySelectDto { public Guid ModalityId { get; set; } public string Modality { get; set; } = string.Empty; } public class TrialDetailDTO : TrialBaseModel { [JsonIgnore] public List DictionaryList { get; set; } = new List(); public List ModalityList => DictionaryList.Where(t => t.ParentCode == StaticData.Modality).OrderBy(t => t.ShowOrder).Select(t => t.Value).ToList(); public List ModalityIds => DictionaryList.Where(t => t.ParentCode == StaticData.Modality).OrderBy(t => t.ShowOrder).Select(t => t.Id).ToList(); public List CriterionList { get; set; } public string Modalitys { get; set; } //public List CriterionIds => DictionaryList.Where(t => t.ParentCode == StaticData.ReadingStandard).OrderBy(t => t.ShowOrder).Select(t => t.Id).ToList(); public List ReviewTypeIds => DictionaryList.Where(t => t.ParentCode == StaticData.ReviewType).OrderBy(t => t.ShowOrder).Select(t => t.Id).ToList(); public List ReviewTypeList => DictionaryList.Where(t => t.ParentCode == StaticData.ReviewType).OrderBy(t => t.ShowOrder).Select(t => t.Value).ToList(); //public string ReviewType { get; set; } = string.Empty; //统计字段 public string Phase { get; set; } = string.Empty; public string IndicationType { get; set; } = string.Empty; public int EnrollStatus { get; set; } public string ReviewMode { get; set; } = string.Empty; public int ReadingType { get; set; } public string CRO { get; set; } = string.Empty; public string Sponsor { get; set; } = string.Empty; public int TrialEnrollStatus { get; set; } public string TrialStatusStr { get; set; } = string.Empty; public DateTime? CreateTime { get; set; } public bool IsDeleted { get; set; } public bool IsLocked { get; set; } //public string DeclarationType { get; set; } = string.Empty; //public int? SubjectCount { get; set; } //public int? StudyCount { get; set; } = 0; //public int? SiteCount { get; set; } = 0; public int? UserFeedBackUnDealedCount { get; set; } } public class TrialAndTrialStateVieModel { public TrialDetailDTO TrialView { get; set; } = new TrialDetailDTO(); public int TrialMaxState { get; set; } } public class TrialCommand : TrialBaseModel { public List ModalityIds { get; set; } = new List(); public List CriterionIds { get; set; } = new List(); public List ReviewTypeIds { get; set; } = new List(); } public class TrialQueryDTO : PageInput { //public Guid? DeclarationTypeId { get; set; } public List DeclarationTypeEnumList { get; set; } = new List(); public List AttendedReviewerTypeEnumList { get; set; } = new List(); public Guid? IndicationTypeId { get; set; } public Guid? SponsorId { get; set; } public Guid? CROId { get; set; } public string ResearchProgramNo { get; set; } = String.Empty; public string ExperimentName { get; set; } = String.Empty; public List ModalityIds { get; set; } = new List(); public List CriterionIds { get; set; } = new List(); public List ReviewTypeIds { get; set; } = new List(); //public Guid? ReviewTypeId { get; set; } public string Code { get; set; } = String.Empty; public string Indication { get; set; } = String.Empty; public Guid? PhaseId { get; set; } public string TrialStatusStr { get; set; } = String.Empty; public DateTime? BeginDate { get; set; } public DateTime? EndDate { get; set; } public int? Expedited { get; set; } //public AttendedReviewerType? AttendedReviewerType { get; set; } } public class ReviewerTrialQueryDTO : PageInput { public string Code { get; set; } = string.Empty; public string Indication { get; set; } = string.Empty; public EnrollStatus? EnrollStatus { get; set; } public int? Expedited { get; set; } } public class TrialByStatusQueryDTO : PageInput { public Guid DoctorId { get; set; } public int Status { get; set; } } public class TrialExtraConfig { #region QC 影像下载 //QC质控 public bool IsSupportQCDownloadImage { get; set; } = false; #endregion #region 中心调研 public List NotShowFieldList { get; set; } = new List(); public List ModifyFiledList { get; set; } = new List(); #endregion #region 项目术语配置 public List TrialObjectNameList { get; set; } #endregion } public class TrialPacsInfo { public int Port { get; set; } public string Ip { get; set; } public string TrialCalledAE { get; set; } } public class SiteSurveyModifyFiled { public string NeedModifyFiled { get; set; } public string ReplaceContent { get; set; } public string ReplaceContentCN { get; set; } } }