irc-netcore-api/IRaCIS.Core.Application/Service/Visit/DTO/VisitPointViewModel.cs

618 lines
17 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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; }
}
}