using IRaCIS.Application.Contracts; using IRaCIS.Core.Application.MediatR.CommandAndQueries; using IRaCIS.Core.Domain.Share; using Newtonsoft.Json; namespace IRaCIS.Core.Application.Contracts.DTO { public class UpdateModalityCommand { public Guid Id { get; set; } public Guid SubjectVisitId { get; set; } public int Type { get; set; } public string Modality { get; set; } = String.Empty; public string BodyPart { get; set; } = String.Empty; } public class QCQuestionAnswerCommand { public Guid? Id { get; set; } public string Answer { get; set; } = String.Empty; //public string ChildAnswer { get; set; } = String.Empty; public Guid? TrialQCQuestionConfigureId { get; set; } } public class QCQuestionAnswerItemDto { //public string ChildAnswer { get; set; } = String.Empty; [JsonIgnore] public List QCQuestionAnswerList { get; set; } = new List(); public TrialQCProcess? QCProcessEnum { get; set; } // 1代表第一个人QC数据 2 代表第二个人QC数据 public CurrentQC? CurrentQCEnum { get; set; } public Guid? SubjectVisitId { get; set; } public Guid? Id { get; set; } public string Answer { get; set; } = String.Empty; public Guid TrialQCQuestionConfigureId { get; set; } public Guid TrialId { get; set; } public string QuestionName { get; set; } = String.Empty; public bool IsRequired { get; set; } public bool IsEnable { get; set; } public string Type { get; set; } = String.Empty; public Guid? ParentId { get; set; } public string TypeValue { get; set; } = String.Empty; public string ParentTriggerValue { get; set; } = String.Empty; public int ShowOrder { get; set; } public int? ParentShowOrder { get; set; } public bool IsChild => ParentId != null; } public class QATrialTemplateItemDto { public Guid QATrialTemplateId { get; set; } public string TemplateItemName { get; set; } = String.Empty; public Guid QATrialTemplateItemId { get; set; } public int ShowOrder { get; set; } } public class QARecordItemQuery { public Guid QaTrialTemplateId { get; set; } public Guid? QaRecordId { get; set; } } public class QATemplateQuery { public Guid TrialId { get; set; } public string Modalities { get; set; } = String.Empty; } public class CloseQCChallengeInDto { public Guid qcChallengeId { get; set; } public Guid trialId { get; set; } public Guid subjectVisitId { get; set; } public QCChallengeCloseEnum closeEnum { get; set; } public string closeReason { get; set; } } public class QCChallengeCommand { public Guid? Id { get; set; } public string ChallengeType { get; set; } = String.Empty; public Guid SubjectVisitId { get; set; } public string Content { get; set; } = string.Empty; public string ActionContent { get; set; } = string.Empty; public QCChanllengeReuploadEnum ReuploadEnum { get; set; } public DateTime? DeadlineTime { get; set; } } public class GetConsistencyCheckFileDto/*: ConsistencyCheckFile*/ { /// /// 文件名称 /// public string FileName { get; set; } /// /// 文件路径 /// public string FilePath { get; set; } /// /// 相对路径 /// public string RelativePath { get; set; } /// /// 创建人 /// public Guid CreateUserId { get; set; } /// /// 创建时间 /// public DateTime CreateTime { get; set; } /// /// 项目ID /// public Guid TrialId { get; set; } /// /// 创建者名称 /// public string CreateUserName { get; set; } } public class GetConsistencyCheckFileInDto { public Guid TrialId { get; set; } public int PageIndex { get; set; } = 1; public int PageSize { set; get; } = 10; } public class QCChanllengeCreatorDto { public Guid CreateUserId { get; set; } public string Creator { get; set; } = String.Empty; public string CreatorRealName { get; set; } = String.Empty; //public string FirstName { get; set; } //public string LastName { get; set; } } public class ParticipantDTO { public Guid HandleUserId { get; set; } public string HandleUser { get; set; } = String.Empty; public string HandleUserRealName { get; set; } = String.Empty; } public class QCChallengeWithUser : QCChallengeCommand { public string VisitName { get; set; } public string BlindName { get; set; } = string.Empty; public string SubjectCode { get; set; } public Guid? CurrentActionUserId { get; set; } public string CurrentActionUserName { get; set; } = String.Empty; public Guid SubjectId { get; set; } public UserTypeEnum UserTypeEnum { get; set; } public Guid CreateUserId { get; set; } public string ChallengeCode { get; set; } = String.Empty; public DateTime? LatestMsgTime { get; set; } public string LatestReplyUserName { get; set; } = String.Empty; public DateTime? ClosedTime { get; set; } public bool IsClosed { get; set; } public DateTime? ReUploadedTime { get; set; } public string CreateUserName { get; set; } = String.Empty; public DateTime CreateTime { get; set; } public bool IsOverTime => IsClosed ? ClosedTime > DeadlineTime : DateTime.Now > DeadlineTime; public string ChallengeDuration { get { if (!ClosedTime.HasValue) return ""; else return string.Format("{0}天{1}小时{2}分钟", (ClosedTime - CreateTime)?.Days, (ClosedTime - CreateTime)?.Hours, (ClosedTime - CreateTime)?.Minutes); } } } public class ChallengeAndDialog: QCChallengeWithUser { public List DialogList { get; set; } = new List(); } public class TrialVisitQADTO { public SubjectClinicalDataDto SubjectClinicalData { get; set; } = new SubjectClinicalDataDto(); public List NoneDicomStudyList { get; set; } = new List(); public List QCQuestionAnswerList { get; set; } = new List(); public List StudyList { get; set; } = new List(); public List SeriesList { get; set; } = new List(); public QARelationInfo RelationInfo { get; set; } = new QARelationInfo(); } public class QAStudySeriesInfo { public List StudyList { get; set; } = new List(); public List SeriesList { get; set; } = new List(); } public class QADictionaryCommand { public string Note { get; set; } = String.Empty; public Guid DictionaryId { get; set; } } public class QADictionaryDTO : QADictionaryCommand { public string DictionaryValue { get; set; } = String.Empty; } public class QADicView { public Guid QARecordId { get; set; } public string DictionaryValue { get; set; } = String.Empty; public string Note { get; set; } = String.Empty; public Guid DictionaryId { get; set; } } public class QARelationInfo { public int TrialClinicalInformationTransmissionEnum { get; set; } public int TrialChangeDefalutDays { get; set; } public TrialQCProcess TrialQCProcessEnum { get; set; } public string TrialChallengeTypes { get; set; } = String.Empty; public string TrialBodyPartTypes { get; set; } = String.Empty; public string TrialImageQCSignText { get; set; } = String.Empty; public string TrialModalitys { get; set; } = String.Empty; //public string FirstName { get; set; } //public string LastName { get; set; } //public string Modalities { get; set; } public Guid SiteId { get; set; } public string SiteName { get; set; } = String.Empty; public Guid SubjectId { get; set; } public Guid SubjectVisitId { get; set; } public string SubjectCode { get; set; } = String.Empty; public string SubjectName { get; set; } = String.Empty; public int SubjectAge { get; set; } public string SubjectSex { get; set; } = String.Empty; public DateTime? EarliestScanDate { get; set; } public DateTime? LatestScanDate { get; set; } public decimal VisitNum { get; set; } public string VisitName { get; set; } = string.Empty; //public DateTime? SVSTDTC { get; set; } //public DateTime? SVENDTC { get; set; } public bool InPlan { get; set; } public int? VisitDay { get; set; } public bool IsBaseLine { get; set; } = false; public string AnonymousVisitName { get; set; } = string.Empty; public int? VisitWindowLeft { get; set; } public int? VisitWindowRight { get; set; } public DateTime? SubjectFirstGiveMedicineTime { get; set; } public bool IsHaveFirstGiveMedicineDate { get; set; } = true; public int? TotalChallengeCount { get; set; } public int? NotClosedChallengeCount { get; set; } } public class QAStudyInfoDTO { public bool IsDeleted { get; set; } public string StudyInstanceUid { get; set; } = string.Empty; public Guid TrialId { get; set; } public Guid StudyId { get; set; } public int StudyStatus { get; set; } public string StudyCode { get; set; } = string.Empty; public string Modalities { get; set; } = String.Empty; public int SeriesCount { get; set; } public int InstanceCount { get; set; } public string Uploader { get; set; } = string.Empty; public DateTime? StudyTime { get; set; } public DateTime? UploadedTime { get; set; } public string BodyPartExamined { get; set; } = String.Empty; public string BodyPartForEdit { get; set; } = String.Empty; public string ModalityForEdit { get; set; } = string.Empty; //public string PatientName { get; set; } = string.Empty; //public string PatientAge { get; set; } = string.Empty; //public string PatientSex { get; set; } = string.Empty; //public string Comment { get; set; } //public string QAComment { get; set; } //public string UploaderFirstName { get; set; } //public string UploaderLastName { get; set; } } public class QASeriesInfoDto { public DateTime? StudyTime { get; set; } public string StudyCode { get; set; } = string.Empty; public Guid Id { get; set; } public Guid StudyId { get; set; } public string BodyPartForEdit { get; set; } = String.Empty; public string SeriesInstanceUid { get; set; } = String.Empty; public string SeriesNumber { get; set; } public DateTime? SeriesTime { get; set; } public string Modality { get; set; } = String.Empty; public string Description { get; set; } = String.Empty; public int InstanceCount { get; set; } public DateTime CreateTime { get; set; } public string BodyPartExamined { get; set; } = String.Empty; public bool IsReading { get; set; } public bool IsDeleted { get; set; } //public bool IsDicomData { get; set; } = true; //public Guid[] InstanceList = new Guid[0]; //public List InstancePathList = new List(); } public class QADialogCommand { public string TalkContent { get; set; } = String.Empty; public Guid QCChallengeId { get; set; } public Guid SubjectVisitId { get; set; } } /// /// 关闭一致性质疑Dto /// public class CloseCheckChallengeDto { public Guid subjectVisitId { get; set; } public string CloseCheckChallenge { get; set; } } public class CheckChallengeDialogCommand { public string TalkContent { get; set; } = String.Empty; public Guid SubjectVisitId { get; set; } } public class CheckChanllengeDialogDTO { public Guid Id { get; set; } public string TalkContent { get; set; } = String.Empty; public DateTime CreateTime { get; set; } public Guid CreateUserId { get; set; } public string CreateUserName { get; set; } = String.Empty; public string CreateUserFullName { get; set; } = String.Empty; public bool IsCurrentUser { get; set; } public bool? IsCRCNeedReply { get; set; } public UserTypeEnum UserTypeEnum { get; set; } public string ParamInfo { get; set; } public List ParamInfoList { get { try { return JsonConvert.DeserializeObject>(ParamInfo); } catch (Exception e) { return new List(); } } } } public class QCChanllengeDialogDTO : CheckChanllengeDialogDTO { public Guid QCChallengeId { get; set; } } public class DialogDTO { public Guid Id { get; set; } public string TalkContent { get; set; } = String.Empty; public string From { get; set; } = String.Empty; public string To { get; set; } = string.Empty; public Guid UserId { get; set; } public string PreviousContent { get; set; } = String.Empty; public bool HasReply { get; set; } public DateTime CreateTime { get; set; } } public class DialogNode { public Guid Id { get; set; } public Guid ParentId { get; set; } public Guid UserId { get; set; } public string UserName { get; set; } = String.Empty; public bool HasReply { get; set; } public string TalkContent { get; set; } = String.Empty; //public Guid QARecordId { get; set; } public DateTime CreateTime { get; set; } } }