618 lines
17 KiB
C#
618 lines
17 KiB
C#
using IRaCIS.Core.Application.Contracts.Dicom.DTO;
|
||
using IRaCIS.Core.Domain.Share;
|
||
using Newtonsoft.Json;
|
||
using System.ComponentModel.DataAnnotations;
|
||
|
||
namespace IRaCIS.Core.Application.Contracts
|
||
{
|
||
public class SubjectVisitCommand
|
||
{
|
||
[NotDefault]
|
||
public Guid TrialSiteId { get; set; }
|
||
public bool IsFinalVisit { get; set; }
|
||
|
||
public string BlindName { get; set; } = string.Empty;
|
||
|
||
public Guid? Id { get; set; }
|
||
public Guid TrialId { get; set; }
|
||
public Guid SubjectId { get; set; }
|
||
|
||
public bool InPlan { get; set; } = true;
|
||
public VisitExecutedEnum VisitExecuted { get; set; }
|
||
public decimal VisitNum { get; set; }
|
||
public string VisitName { get; set; } = string.Empty;
|
||
public int? VisitDay { get; set; }
|
||
public string SVUPDES { get; set; } = string.Empty;
|
||
|
||
public bool IsBaseLine { get; set; } = false;
|
||
public int VisitWindowLeft { get; set; }
|
||
public int VisitWindowRight { get; set; }
|
||
|
||
public bool IsLostVisit { get; set; }
|
||
public PDStateEnum? PDState { get; set; }
|
||
|
||
public bool? IsEnrollmentConfirm { get; set; }
|
||
public DateTime? SubjectFirstGiveMedicineTime { get; set; }
|
||
|
||
|
||
|
||
public Guid? OutPlanPreviousVisitId { get; set; }
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
public class IDDto
|
||
{
|
||
public Guid Id { get; set; }
|
||
|
||
}
|
||
|
||
public class DeleteSVCommand
|
||
{
|
||
public Guid SubjectVisitId { get; set; }
|
||
}
|
||
|
||
public class SetSubjectVisitUrgentCommand
|
||
{
|
||
public Guid SubjectVisitId { get; set; }
|
||
|
||
|
||
public bool isUrgent { get; set; }
|
||
}
|
||
public class SubjectVisitDTO : SubjectVisitCommand
|
||
{
|
||
public SubjectStatus SubjectStatus { get; set; }
|
||
|
||
}
|
||
|
||
public class SubjectVisitNewDTO : SubjectVisitDTO
|
||
{
|
||
public TrialQCProcess QCProcessEnum { get; set; }
|
||
public CheckStateEnum CheckState { get; set; }
|
||
public SubmitStateEnum SubmitState { get; set; }
|
||
public AuditStateEnum AuditState { get; set; }
|
||
|
||
public string CurrentActionUser { get; set; } = String.Empty;
|
||
public DateTime? CurrentActionUserExpireTime { get; set; }
|
||
public string PreliminaryAuitUser { get; set; } = String.Empty;
|
||
public string ReviewAuitUser { get; set; } = String.Empty;
|
||
public DateTime? ReviewAuitTime { get; set; }
|
||
public DateTime? PreliminaryAuditTime { get; set; }
|
||
|
||
|
||
public int? StudyCount { get; set; }
|
||
|
||
public String TrialSiteCode { get; set; } = String.Empty;
|
||
public DateTime UpdateTime { get; set; }
|
||
|
||
public string SubjectSex { get; set; } = String.Empty;
|
||
|
||
public int SubjectAge { get; set; }
|
||
|
||
public string SubjectCode { get; set; } = String.Empty;
|
||
|
||
|
||
[JsonIgnore]
|
||
public string SubjectName => LastName + " / " + FirstName;
|
||
public string FirstName { get; set; } = string.Empty;
|
||
public string LastName { get; set; } = string.Empty;
|
||
|
||
public string SiteName { get; set; } = String.Empty;
|
||
|
||
public string SiteCode { get; set; } = String.Empty;
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
public class UploadVisitCheckExcelDto
|
||
{
|
||
|
||
public Guid trialId { get; set; }
|
||
|
||
public string AuditInfo { get; set; }
|
||
}
|
||
public class ForwardSVDicomImageDto
|
||
{
|
||
public Guid[] subjectVisitIdList { get; set; }
|
||
}
|
||
public class SubjectVisitSearchDTO : PageInput
|
||
{
|
||
public string SubjectInfo { get; set; } = String.Empty;
|
||
|
||
public string VisitPlanInfo { get; set; } = String.Empty;
|
||
|
||
public Guid? SubjectId { get; set; }
|
||
public Guid TrialId { get; set; }
|
||
public Guid? TrialSiteId { get; set; }
|
||
}
|
||
|
||
public class SubjectVisitSelectItem
|
||
{
|
||
public Guid Id { get; set; }
|
||
public decimal VisitNum { get; set; }
|
||
public string VisitName { get; set; } = String.Empty;
|
||
|
||
public int VisitExecuted { get; set; }
|
||
|
||
public bool IsUploadedImage { get; set; }
|
||
}
|
||
|
||
public class SubjectVisitSelectDTO
|
||
{
|
||
public Guid GuidId { get; set; } = Guid.NewGuid();
|
||
public Guid SubjectVisitId { get; set; } = Guid.Empty;
|
||
public decimal VisitNum { get; set; }
|
||
public string VisitName { get; set; } = string.Empty;
|
||
|
||
public string SVUPDES { get; set; } = string.Empty;
|
||
|
||
public int? VisitDay { get; set; }
|
||
|
||
//public Guid VisitStageId { get; set; } = Guid.Empty;
|
||
|
||
public DateTime? SVSTDTC { get; set; }
|
||
|
||
public DateTime? SVENDTC { get; set; }
|
||
|
||
|
||
//public bool IsSubjectVisit { get; set; } = false;
|
||
|
||
public VisitExecutedEnum VisitExecuted { get; set; }
|
||
|
||
|
||
|
||
public List<SubjectVisitStudyDTO> StudyList = new List<SubjectVisitStudyDTO>();
|
||
}
|
||
|
||
|
||
public class SubjectVisitStudyDTO
|
||
{
|
||
public Guid SubjectVisitId { get; set; }
|
||
public Guid StudyId { get; set; }
|
||
public string StudyCode { get; set; } = String.Empty;
|
||
|
||
public string Modalities { get; set; } = String.Empty;
|
||
|
||
public int Status { get; set; }
|
||
|
||
}
|
||
|
||
public class GetReadingVisitStudyListIndto
|
||
{
|
||
[NotDefault]
|
||
public Guid TrialId { get; set; }
|
||
[NotDefault]
|
||
public Guid SujectVisitId { get; set; }
|
||
[NotDefault]
|
||
public Guid VisitTaskId { get; set; }
|
||
}
|
||
|
||
|
||
public class TempInstance
|
||
{
|
||
public Guid Id { get; set; }
|
||
public string Path { get; set; }
|
||
public int NumberOfFrames { get; set; }
|
||
public int InstanceNumber { get; set; }
|
||
|
||
public int ShowOrder { get; set; }
|
||
|
||
public decimal RowIndex { get; set; }
|
||
|
||
}
|
||
|
||
public class GetPTAndCtSeriesOutDto
|
||
{
|
||
public Guid VisitTaskId { get; set; }
|
||
public Guid CTSeriesId { get; set; }
|
||
public Guid PTSeriesId { get; set; }
|
||
|
||
|
||
public Guid StudyId { get; set; }
|
||
|
||
public Guid? SubjectVisitId { get; set; }
|
||
|
||
|
||
public bool IsBaseLineTask { get; set; }
|
||
|
||
public string TaskBlindName { get; set; } = string.Empty;
|
||
|
||
public List<StudyInfo> StudyInfoList { get; set; }
|
||
}
|
||
|
||
public class StudyInfo
|
||
{
|
||
public Guid StudyId { get; set; }
|
||
public string StudyCode { get; set; } = String.Empty;
|
||
|
||
public Guid SubjectVisitId { get; set; }
|
||
public string Modalities { get; set; } = String.Empty;
|
||
|
||
public bool IsCriticalSequence { get; set; } = false;
|
||
|
||
public int SeriesCount { get; set; }
|
||
public int InstanceCount { get; set; }
|
||
|
||
public bool IsDicom { get; set; } = true;
|
||
|
||
public List<DicomSeriesDTO> CTSeriesList { get; set; }
|
||
|
||
public List<DicomSeriesDTO> PTSeriesList { get; set; }
|
||
}
|
||
|
||
public class GetDicomSeriesInfoInDto
|
||
{
|
||
|
||
public Guid SeriesId { get; set; }
|
||
}
|
||
|
||
|
||
public class GetPTAndCtSeriesInDto
|
||
{
|
||
public Guid VisitTaskId { get; set; }
|
||
}
|
||
|
||
public class VisitStudyDTO
|
||
{
|
||
public Guid StudyId { get; set; }
|
||
public string StudyCode { get; set; } = String.Empty;
|
||
public string Modalities { get; set; } = String.Empty;
|
||
|
||
public bool IsCriticalSequence { get; set; } = false;
|
||
|
||
public int SeriesCount => SeriesList.Count;
|
||
public int InstanceCount { get; set; }
|
||
|
||
public bool IsDicom { get; set; } = true;
|
||
|
||
public string StudyName { get; set; } = string.Empty;
|
||
|
||
public string BodyPartForEdit { get; set; }
|
||
|
||
public string BodyPartForEditOther { get; set; }
|
||
|
||
|
||
#region 核验
|
||
|
||
/// <summary>
|
||
/// 性别
|
||
/// </summary>
|
||
public string PatientSex { get; set; } = null!;
|
||
|
||
/// <summary>
|
||
/// 体重
|
||
/// </summary>
|
||
public string PatientWeight { get; set; }
|
||
|
||
/// <summary>
|
||
/// 总剂量
|
||
/// </summary>
|
||
public string RadionuclideTotalDose { get; set; } = null!;
|
||
|
||
/// <summary>
|
||
/// 半衰期
|
||
/// </summary>
|
||
public string RadionuclideHalfLife { get; set; } = null!;
|
||
|
||
/// <summary>
|
||
/// 注射时间
|
||
/// </summary>
|
||
public string RadiopharmaceuticalStartTime { get; set; } = null!;
|
||
|
||
/// <summary>
|
||
/// 成像 / 采集时间
|
||
/// </summary>
|
||
public string AcquisitionTime { get; set; } = null!;
|
||
|
||
|
||
#endregion
|
||
|
||
|
||
/// <summary>
|
||
/// 是否存在空字符串字段(PatientSex、PatientWeight、RadionuclideTotalDose、RadionuclideHalfLife、RadiopharmaceuticalStartTime、AcquisitionTime 任意一个为空/空字符串)
|
||
/// </summary>
|
||
public bool IsHasEmptyPatientInfo =>
|
||
string.IsNullOrWhiteSpace(PatientSex) ||
|
||
string.IsNullOrWhiteSpace(PatientWeight) ||
|
||
string.IsNullOrWhiteSpace(RadionuclideTotalDose) ||
|
||
string.IsNullOrWhiteSpace(RadionuclideHalfLife) ||
|
||
string.IsNullOrWhiteSpace(RadiopharmaceuticalStartTime) ||
|
||
string.IsNullOrWhiteSpace(AcquisitionTime);
|
||
|
||
public List<DicomSeriesDTO> SeriesList { get; set; } = new List<DicomSeriesDTO>();
|
||
}
|
||
|
||
public class PreArchiveStudyCommand
|
||
{
|
||
public Guid SubjectVisitId { get; set; }
|
||
|
||
public bool IsDicom { get; set; }
|
||
|
||
public int FileCount { get; set; }
|
||
|
||
|
||
}
|
||
|
||
public class ArchiveStudyCommand
|
||
{
|
||
//[NotDefault]
|
||
//public Guid StudyMonitorId { get; set; }
|
||
public Guid? AbandonStudyId { get; set; }
|
||
|
||
|
||
public Guid SubjectVisitId { get; set; }
|
||
|
||
public string StudyInstanceUid { get; set; } = String.Empty;
|
||
|
||
|
||
}
|
||
|
||
|
||
public class UploadDTFCommand
|
||
{
|
||
public Guid TrialId { get; set; }
|
||
public Guid TrialSiteId { get; set; }
|
||
public Guid SubjectId { get; set; }
|
||
public Guid SubjectVisitId { get; set; }
|
||
|
||
}
|
||
|
||
|
||
public class StudyCommand
|
||
{
|
||
public Guid Id { get; set; } = Guid.Empty;
|
||
public Guid TrialId { get; set; }
|
||
public Guid TrialSiteId { get; set; }
|
||
public Guid SubjectId { get; set; }
|
||
public Guid SubjectVisitId { get; set; }
|
||
|
||
}
|
||
|
||
public class StudyEditCommand : StudyCommand
|
||
{
|
||
public Guid VisitStageId { get; set; }
|
||
public DateTime? SVSTDTC { get; set; }
|
||
public DateTime? SVENDTC { get; set; }
|
||
public string Comment { get; set; } = String.Empty;
|
||
}
|
||
|
||
|
||
|
||
public class StudyStatDTO
|
||
{
|
||
|
||
public int StudyCount { get; set; }
|
||
public decimal VisitNum { get; set; }
|
||
public string VisitName { get; set; } = String.Empty;
|
||
public int VisitDay { get; set; }
|
||
public string Description { get; set; } = String.Empty;
|
||
public Guid TrialId { get; set; }
|
||
public Guid SubjectVisitId { get; set; }
|
||
|
||
}
|
||
|
||
public class DistributeReviewerStudyStatusDTO
|
||
{
|
||
public string NameCN { get; set; } = String.Empty;
|
||
public string Name { get; set; } = String.Empty;
|
||
public string ReviewerCode { get; set; } = String.Empty;
|
||
public string StudyCode { get; set; } = String.Empty;
|
||
|
||
public int Status { get; set; }
|
||
|
||
}
|
||
|
||
public class StudyStatusQueryDTO : PageInput
|
||
{
|
||
public Guid TrialId { get; set; }
|
||
public Guid? ReviewerId { get; set; }
|
||
|
||
public int? StudyStatus { get; set; }
|
||
}
|
||
|
||
|
||
|
||
public class UploadedSeries
|
||
{
|
||
public Guid SeriesId { get; set; }
|
||
|
||
public string SeriesInstanceUid { get; set; }
|
||
|
||
public List<string> SOPInstanceUIDList { get; set; }
|
||
}
|
||
|
||
public class VerifySCPStudyUploadResult
|
||
{
|
||
public Guid SCPStudyId { get; set; }
|
||
|
||
public string ErrorMesseage { get; set; } = String.Empty;
|
||
|
||
public bool AllowUpload { get; set; } = false;
|
||
|
||
public bool AllowReUpload { get; set; } = false;
|
||
}
|
||
|
||
public class VerifyStudyUploadResult
|
||
{
|
||
public string StudyInstanceUid { get; set; } = String.Empty;
|
||
|
||
public VerifyStudyDto? StudyInfo { get; set; }
|
||
|
||
public bool AllowUpload { get; set; } = false;
|
||
|
||
public bool AllowReUpload { get; set; } = false;
|
||
|
||
public string ErrorMesseage { get; set; } = String.Empty;
|
||
|
||
public List<UploadedSeries> UploadedSeriesList { get; set; } = new List<UploadedSeries>();
|
||
|
||
}
|
||
|
||
public class VerifyTaskUploadOrReupload
|
||
{
|
||
[NotDefault]
|
||
public Guid TrialId { get; set; }
|
||
|
||
[NotDefault]
|
||
public Guid SubjectId { get; set; }
|
||
|
||
public List<VerifyUploadStudyBasicInfo> StudyInstanceUidList { get; set; } = new List<VerifyUploadStudyBasicInfo>();
|
||
}
|
||
|
||
public class VerifyUploadOrReupload
|
||
{
|
||
[NotDefault]
|
||
public Guid TrialId { get; set; }
|
||
|
||
[NotDefault]
|
||
public Guid SubjectId { get; set; }
|
||
|
||
[NotDefault]
|
||
public Guid SubjectVisitId { get; set; }
|
||
|
||
|
||
|
||
public List<VerifyUploadStudyBasicInfo> StudyInstanceUidList { get; set; } = new List<VerifyUploadStudyBasicInfo>();
|
||
}
|
||
|
||
public class VerifyUploadStudyBasicInfo
|
||
{
|
||
public string StudyInstanceUid { get; set; } = String.Empty;
|
||
|
||
public DateTime? StudyDate { get; set; }
|
||
}
|
||
|
||
|
||
public class VerifyStudyDto
|
||
{
|
||
|
||
public Guid Id { get; set; }
|
||
public string StudyCode { get; set; } = String.Empty;
|
||
|
||
public Guid SubjectId { get; set; }
|
||
public Guid SubjectVisitId { get; set; }
|
||
|
||
public string SubjectCode { get; set; } = String.Empty;
|
||
public string VisitName { get; set; } = String.Empty;
|
||
public string SubjectName => LastName + " / " + FirstName;
|
||
public string FirstName { get; set; } = string.Empty;
|
||
public string LastName { get; set; } = string.Empty;
|
||
|
||
public DateTime? StudyTime { get; set; }
|
||
}
|
||
|
||
public class StudyDTO
|
||
{
|
||
public Guid SubjectVisitId { get; set; }
|
||
public decimal VisitNum { get; set; }
|
||
public string VisitName { get; set; } = String.Empty;
|
||
public int? VisitDay { get; set; }
|
||
|
||
public string SVUPDES { get; set; } = String.Empty;
|
||
|
||
public DateTime? SVSTDTC { get; set; }
|
||
|
||
public DateTime? SVENDTC { get; set; }
|
||
|
||
|
||
public Guid Id { get; set; }
|
||
public Guid TrialId { get; set; }
|
||
public string StudyCode { get; set; } = String.Empty;
|
||
|
||
|
||
public int StudyStatus { get; set; }
|
||
public DateTime? StudyDate { get; set; }
|
||
public string Modalities { get; set; } = String.Empty;
|
||
public int SeriesCount { get; set; }
|
||
public int InstanceCount { get; set; }
|
||
|
||
public bool IsDoubleReview { get; set; }
|
||
|
||
public string StudyDescription { get; set; } = String.Empty;
|
||
|
||
public string BodyPartExamined { get; set; } = String.Empty;
|
||
|
||
public string Comment { get; set; } = String.Empty;
|
||
|
||
public DateTime UpdateTime { get; set; }
|
||
|
||
public DateTime? UploadedTime { get; set; }
|
||
|
||
public DateTime? DeadlineTime { get; set; }
|
||
|
||
//public List<DistributeReviewer> DistributeReviewers { get; set; }=new List<DistributeReviewer>();
|
||
|
||
|
||
public Guid TrialSiteId { get; set; }
|
||
public string SiteName { get; set; } = String.Empty;
|
||
public string InstitutionName { get; set; } = String.Empty;
|
||
public string StudyId { get; set; } = String.Empty;//这个Id是dicom文件中的Id
|
||
public Guid SubjectId { get; set; }
|
||
public string SubjectCode { get; set; } = String.Empty;
|
||
|
||
public string SubjectName => LastName + " / " + FirstName;
|
||
public string FirstName { get; set; } = string.Empty;
|
||
public string LastName { get; set; } = string.Empty;
|
||
public int? SubjectAge { get; set; }
|
||
|
||
public SubjectStatus SubjectStatus { get; set; }
|
||
public string SubjectSex { get; set; } = String.Empty;
|
||
|
||
public string SubjectMedicalNo { get; set; } = string.Empty;
|
||
|
||
public string PatientId { 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 AccessionNumber { get; set; } = string.Empty;
|
||
public string PatientBirthDate { get; set; } = string.Empty;
|
||
|
||
|
||
//public int? NeedDealMessageCount { get; set; }
|
||
//public int? TotalMessageCount { get; set; }
|
||
public int? DTFCount { get; set; }
|
||
|
||
|
||
public string UploaderFirstName { get; set; } = String.Empty;
|
||
public string UploaderLastName { get; set; } = String.Empty;
|
||
}
|
||
|
||
public class DistributeReviewer
|
||
{
|
||
public Guid StudyId { get; set; }
|
||
|
||
public Guid ReviewerId { get; set; }
|
||
public string NameCN { get; set; } = String.Empty;
|
||
public string Name { get; set; } = String.Empty;
|
||
|
||
public int Status { get; set; }
|
||
}
|
||
|
||
public class StudyQueryDTO : PageInput
|
||
{
|
||
public Guid? SubjectId { get; set; }
|
||
|
||
public Guid? TrialSiteId { get; set; }
|
||
public Guid TrialId { get; set; }
|
||
public string SubjectInfo { get; set; } = String.Empty;
|
||
|
||
public string VisitPlanInfo { get; set; } = String.Empty;
|
||
|
||
public Guid? SubjectVisitId { get; set; }
|
||
|
||
|
||
public DateTime? StudyTimeBegin { get; set; }
|
||
|
||
public DateTime? StudyTimeEnd { get; set; }
|
||
|
||
public DateTime? UpdateTimeBegin { get; set; }
|
||
|
||
public DateTime? UpdateTimeEnd { get; set; }
|
||
}
|
||
}
|