606 lines
15 KiB
C#
606 lines
15 KiB
C#
using IRaCIS.Core.Application.Service.ImageAndDoc.DTO;
|
|
using IRaCIS.Core.Domain.Share;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace IRaCIS.Core.Application.Contracts
|
|
{
|
|
|
|
public class UnionStudyBaseModel
|
|
{
|
|
public Guid TrialId { get; set; }
|
|
|
|
public Guid TrialSiteId { get; set; }
|
|
|
|
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 decimal VisitNum { get; set; }
|
|
|
|
public string TrialSiteCode { get; set; } = string.Empty;
|
|
|
|
public string TrialSiteAliasName { get; set; } = string.Empty;
|
|
|
|
public string Uploader { get; set; } = string.Empty;
|
|
|
|
public DateTime UploadTime { get; set; }
|
|
|
|
public string StudyCode { get; set; }
|
|
|
|
|
|
//[JsonIgnore]
|
|
//public string DicomStudyCode { get; set; } = string.Empty;
|
|
//[JsonIgnore]
|
|
//public int NoneDicomCode { get; set; }
|
|
|
|
public string RecordPath { get; set; } = string.Empty;
|
|
public bool IsDicom { get; set; }
|
|
|
|
|
|
|
|
}
|
|
|
|
public class UnionStudyMonitorModel : UnionStudyBaseModel
|
|
{
|
|
public Guid StudyId { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public string UploadStartTimeStr => UploadStartTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
public string UploadFinishedTimeStr => UploadFinishedTime?.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
|
|
public string ArchiveFinishedTimeStr => ArchiveFinishedTime?.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
|
|
|
|
public string UploadIntervalStr
|
|
{
|
|
get
|
|
{
|
|
var uploadTimeSpan = UploadFinishedTime - UploadStartTime;
|
|
|
|
return $" {uploadTimeSpan?.Hours}:{uploadTimeSpan?.Minutes}:{uploadTimeSpan?.Seconds}.{uploadTimeSpan?.Milliseconds}";
|
|
}
|
|
}
|
|
|
|
public string ArchiveIntervalStr
|
|
{
|
|
get
|
|
{
|
|
var uploadTimeSpan = ArchiveFinishedTime - UploadFinishedTime;
|
|
|
|
return $" {uploadTimeSpan?.Hours}:{uploadTimeSpan?.Minutes}:{uploadTimeSpan?.Seconds}.{uploadTimeSpan?.Milliseconds}";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public string TimeInterval
|
|
{
|
|
get
|
|
{
|
|
|
|
var uploadTimeSpan = ArchiveFinishedTime - UploadStartTime;
|
|
|
|
return $" {uploadTimeSpan?.Hours}:{uploadTimeSpan?.Minutes}:{uploadTimeSpan?.Seconds}.{uploadTimeSpan?.Milliseconds}";
|
|
|
|
}
|
|
}
|
|
|
|
public DateTime UploadStartTime { get; set; }
|
|
|
|
|
|
public DateTime? UploadFinishedTime { get; set; }
|
|
|
|
public DateTime? ArchiveFinishedTime { get; set; }
|
|
|
|
|
|
public decimal FileSize { get; set; }
|
|
|
|
public string IP { get; set; } = String.Empty;
|
|
|
|
|
|
public bool IsDicomReUpload { get; set; }
|
|
|
|
|
|
public int FileCount { get; set; }
|
|
|
|
public bool IsSuccess { get; set; }
|
|
|
|
public string Note = string.Empty;
|
|
|
|
}
|
|
|
|
|
|
public class UnionStudyViewModel : UnionStudyBaseModel
|
|
{
|
|
|
|
public Guid Id { get; set; }
|
|
|
|
public bool IsFromPACS { get; set; }
|
|
|
|
public int? Count { get; set; }
|
|
|
|
|
|
public string Modalities { get; set; } = string.Empty;
|
|
|
|
public string Bodypart { get; set; } = string.Empty;
|
|
|
|
public DateTime? StudyTime { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public class StudyQuery : PageInput
|
|
{
|
|
[NotDefault]
|
|
public Guid TrialId { get; set; }
|
|
|
|
public Guid? SubjectId { get; set; }
|
|
|
|
public Guid? TrialSiteId { get; set; }
|
|
public Guid? SubjectVisitId { get; set; }
|
|
|
|
public string SubjectInfo { get; set; } = String.Empty;
|
|
|
|
|
|
public string[]? VisitPlanArray { get; set; }
|
|
|
|
public Guid? VisitTaskId { get; set; }
|
|
|
|
public bool? IsDicom { get; set; }
|
|
|
|
public string? Uploader { get; set; }
|
|
|
|
public bool? IsSuccess { get; set; }
|
|
|
|
public string? StudyCode { get; set; }
|
|
|
|
public bool? IsFromPACS { get; set; }
|
|
}
|
|
|
|
|
|
public class PriArchiveTaskStudyCommand
|
|
{
|
|
|
|
[NotDefault]
|
|
public Guid TrialId { get; set; }
|
|
|
|
[NotDefault]
|
|
public Guid SubjectId { get; set; }
|
|
|
|
[NotDefault]
|
|
public Guid SubjectVisitId { get; set; }
|
|
|
|
public long FileSize { get; set; }
|
|
|
|
public bool IsDicomReUpload { get; set; }
|
|
|
|
|
|
public int FileCount { get; set; }
|
|
}
|
|
|
|
public class PreArchiveDicomStudyCommand
|
|
{
|
|
|
|
|
|
[NotDefault]
|
|
public Guid TrialId { get; set; }
|
|
[NotDefault]
|
|
public Guid TrialSiteId { get; set; }
|
|
[NotDefault]
|
|
public Guid SubjectId { get; set; }
|
|
[NotDefault]
|
|
public Guid SubjectVisitId { get; set; }
|
|
|
|
|
|
public long FileSize { get; set; }
|
|
|
|
public bool IsDicomReUpload { get; set; }
|
|
|
|
|
|
public int FileCount { get; set; }
|
|
}
|
|
|
|
|
|
public class SubejctZipInfoQuery
|
|
{
|
|
public Guid? SubejctId { get; set; }
|
|
|
|
public string? SubjectCode { get; set; }
|
|
|
|
|
|
public Guid? SubejectVisitId { get; set; }
|
|
|
|
public Guid? TrialReadingCriterionId { get; set; }
|
|
|
|
}
|
|
|
|
public class TaskStudyAchivePreConfirmCommand
|
|
{
|
|
public List<string> StudyInstanceUidList { get; set; }
|
|
|
|
[NotDefault]
|
|
public Guid SubjectId { get; set; }
|
|
[NotDefault]
|
|
public string SubjectCode { get; set; }
|
|
|
|
[NotDefault]
|
|
public Guid TrialId { get; set; }
|
|
|
|
}
|
|
|
|
public class TaskStudyArchiveConfirmResult
|
|
{
|
|
public string StudyInstanceUid { get; set; }
|
|
|
|
public bool IsAllowUpload { get; set; }
|
|
|
|
public bool IsAllowReUpload { get; set; }
|
|
|
|
}
|
|
|
|
public class TaskArchiveStudyCommand
|
|
{
|
|
[NotDefault]
|
|
public Guid TrialId { get; set; }
|
|
[NotDefault]
|
|
public Guid SubjectId { get; set; }
|
|
|
|
[NotDefault]
|
|
public Guid StudyMonitorId { get; set; }
|
|
|
|
public int FailedFileCount { get; set; }
|
|
|
|
public string RecordPath { get; set; } = string.Empty;
|
|
|
|
public AddOrUpdateStudyDto Study { get; set; }
|
|
|
|
[NotDefault]
|
|
public Guid VisitTaskId { get; set; }
|
|
}
|
|
|
|
public class NewArchiveStudyCommand
|
|
{
|
|
[NotDefault]
|
|
public Guid TrialId { get; set; }
|
|
[NotDefault]
|
|
public Guid TrialSiteId { get; set; }
|
|
[NotDefault]
|
|
public Guid SubjectId { get; set; }
|
|
[NotDefault]
|
|
public Guid SubjectVisitId { get; set; }
|
|
[NotDefault]
|
|
public Guid StudyMonitorId { get; set; }
|
|
|
|
public int FailedFileCount { get; set; }
|
|
|
|
public string RecordPath { get; set; } = string.Empty;
|
|
|
|
public AddOrUpdateStudyDto Study { get; set; }
|
|
|
|
|
|
}
|
|
|
|
public class AddOrUpdateStudyDto
|
|
{
|
|
|
|
|
|
public string StudyId { get; set; } = string.Empty;
|
|
|
|
//public int Code { get; set; } = 0;
|
|
|
|
//public string StudyCode { get; set; } = string.Empty;
|
|
|
|
|
|
public string StudyInstanceUid { get; set; } = string.Empty;
|
|
public DateTime? StudyTime { get; set; }
|
|
public string Modalities { get; set; } = string.Empty;
|
|
|
|
public string Description { get; set; } = string.Empty;
|
|
public int SeriesCount { get; set; } = 0;
|
|
public int InstanceCount { get; set; } = 0;
|
|
|
|
public string InstitutionName { 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 string AcquisitionTime { get; set; } = string.Empty;
|
|
public string AcquisitionNumber { get; set; } = string.Empty;
|
|
public string TriggerTime { get; set; } = string.Empty;
|
|
|
|
public string BodyPartExamined { get; set; } = string.Empty;
|
|
|
|
public List<AddOrUpdateSeriesDto> SeriesList { get; set; }
|
|
|
|
|
|
}
|
|
|
|
public class AddOrUpdateSeriesDto
|
|
{
|
|
public string StudyInstanceUid { get; set; }
|
|
public string SeriesInstanceUid { get; set; }
|
|
public int 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 string SliceThickness { get; set; } = string.Empty;
|
|
|
|
public string ImagePositionPatient { get; set; } = string.Empty;
|
|
public string ImageOrientationPatient { get; set; } = string.Empty;
|
|
public string BodyPartExamined { get; set; } = string.Empty;
|
|
public string SequenceName { get; set; } = string.Empty;
|
|
public string ProtocolName { get; set; } = string.Empty;
|
|
public string ImagerPixelSpacing { get; set; } = string.Empty;
|
|
|
|
public string AcquisitionTime { get; set; } = string.Empty;
|
|
public string AcquisitionNumber { get; set; } = string.Empty;
|
|
public string TriggerTime { get; set; } = string.Empty;
|
|
|
|
public string ImageResizePath { get; set; } = string.Empty;
|
|
public List<AddInstanceDto> InstanceList { get; set; }
|
|
|
|
public Guid? VisitTaskId { get; set; }
|
|
}
|
|
|
|
|
|
public class AddInstanceDto
|
|
{
|
|
public string StudyInstanceUid { get; set; }
|
|
public string SeriesInstanceUid { get; set; }
|
|
public string SopInstanceUid { get; set; }
|
|
public int InstanceNumber { get; set; }
|
|
public DateTime? InstanceTime { get; set; }
|
|
public bool CPIStatus { get; set; }
|
|
public int ImageRows { get; set; }
|
|
public int ImageColumns { get; set; }
|
|
public int SliceLocation { get; set; }
|
|
|
|
|
|
public string SliceThickness { get; set; } = string.Empty;
|
|
public int NumberOfFrames { get; set; }
|
|
public string PixelSpacing { get; set; } = string.Empty;
|
|
|
|
public string ImagerPixelSpacing { get; set; } = string.Empty;
|
|
public string FrameOfReferenceUID { get; set; } = string.Empty;
|
|
public string WindowCenter { get; set; } = string.Empty;
|
|
public string WindowWidth { get; set; } = string.Empty;
|
|
|
|
public bool Anonymize { get; set; }
|
|
public string Path { get; set; } = string.Empty;
|
|
|
|
public string HtmlPath { get; set; } = string.Empty;
|
|
|
|
public decimal FileFize { get; set; }
|
|
}
|
|
|
|
public class CRCUploadTaskQuery
|
|
{
|
|
[NotDefault]
|
|
public Guid SubjectId { get; set; }
|
|
|
|
[NotDefault]
|
|
public Guid TrialReadingCriterionId { get; set; }
|
|
|
|
[NotDefault]
|
|
public string SubjectCode { get; set; }
|
|
}
|
|
|
|
public class CRCUploadTaskStudyQuery : SortInput
|
|
{
|
|
|
|
[NotDefault]
|
|
public Guid VisitTaskId { get; set; }
|
|
}
|
|
|
|
|
|
public class IRUploadStudyQuery : SortInput
|
|
{
|
|
[NotDefault]
|
|
public Guid SubjectId { get; set; }
|
|
|
|
[NotDefault]
|
|
public Guid TrialReadingCriterionId { get; set; }
|
|
|
|
[NotDefault]
|
|
public string SubjectCode { get; set; }
|
|
}
|
|
|
|
public class IRTaskUploadedDicomStudyQuery
|
|
{
|
|
[NotDefault]
|
|
public Guid VisitTaskId { get; set; }
|
|
}
|
|
|
|
public class IRUploadTaskDicomStudyDto : DicomStudyBasicInfo
|
|
{
|
|
|
|
public int UploadedSeriesCount { get; set; }
|
|
|
|
public int UploadedInstanceCount { get; set; }
|
|
|
|
public List<string> UploadedSopInstanceUidList { get; set; }
|
|
|
|
|
|
}
|
|
|
|
public class IRUploadTaskNoneDicomStudyDto : NoneDicomStudyBasicInfo
|
|
{
|
|
|
|
public int UploadedFileCount { get; set; }
|
|
}
|
|
|
|
public class TaskDicomStudyDTO : DicomStudyBasicInfo
|
|
{
|
|
public Guid SubjectId { get; set; }
|
|
|
|
public string SubjectCode { get; set; }
|
|
|
|
public string TaskBlindName { get; set; }
|
|
|
|
public string TaskName { get; set; }
|
|
public Guid? SourceSubjectVisitId { get; set; }
|
|
|
|
|
|
|
|
|
|
public int UploadedSeriesCount { get; set; }
|
|
|
|
public int UploadedInstanceCount { get; set; }
|
|
|
|
public List<string> UploadedSopInstanceUidList { get; set; }
|
|
|
|
|
|
}
|
|
|
|
public class NoneDicomFileInfo
|
|
{
|
|
[JsonIgnore]
|
|
public Guid? OriginNoneDicomStudyId { get; set; }
|
|
|
|
public string FileType { get; set; }
|
|
|
|
public long? FileSize { get; set; }
|
|
public string FileName { get; set; }
|
|
|
|
public string Path { get; set; }
|
|
}
|
|
|
|
public class TaskNoneDicomStudyDTO : NoneDicomStudyBasicInfo
|
|
{
|
|
public Guid VisitTaskId { get; set; }
|
|
|
|
public int UploadedFileCount { get; set; }
|
|
|
|
public List<NoneDicomFileInfo> UploadedFileList { get; set; }
|
|
|
|
public List<NoneDicomFileInfo> FileList { get; set; }
|
|
|
|
public Guid SubjectId { get; set; }
|
|
|
|
public string SubjectCode { get; set; }
|
|
|
|
public string TaskBlindName { get; set; }
|
|
|
|
public string TaskName { get; set; }
|
|
public Guid? SourceSubjectVisitId { get; set; }
|
|
|
|
}
|
|
|
|
|
|
|
|
public class CRCUploadedStudyQuqry
|
|
{
|
|
[NotDefault]
|
|
public Guid SubjectVisitId { get; set; }
|
|
|
|
public List<Guid> DicomStudyIdList { get; set; }
|
|
|
|
public List<Guid> NoneDicomStudyIdList { get; set; }
|
|
}
|
|
|
|
public class IRReadingDownloadQuery : SortInput
|
|
{
|
|
[NotDefault]
|
|
public Guid SubjectId { get; set; }
|
|
|
|
[NotDefault]
|
|
public Guid TrialReadingCriterionId { get; set; }
|
|
|
|
[NotDefault]
|
|
public string SubjectCode { get; set; }
|
|
|
|
public Guid? VisitTaskId { get; set; }
|
|
}
|
|
|
|
|
|
public class IRDownloadQuery
|
|
{
|
|
[NotDefault]
|
|
public Guid SubjectId { get; set; }
|
|
|
|
[NotDefault]
|
|
public Guid TrialReadingCriterionId { get; set; }
|
|
|
|
[NotDefault]
|
|
public string SubjectCode { get; set; }
|
|
|
|
public List<SubjectVisitTaskInfo> SubjectVisitTaskList { get; set; }
|
|
|
|
public List<Guid> DicomStudyIdList { get; set; }
|
|
|
|
public List<Guid> NoneDicomStudyIdList { get; set; }
|
|
|
|
}
|
|
|
|
public class TrialImageDownloadView
|
|
{
|
|
public Guid TrialId { get; set; }
|
|
|
|
public string SubjectCode { get; set; }
|
|
|
|
public bool IsSuccess { get; set; }
|
|
|
|
public DateTime DownloadStartTime { get; set; }
|
|
public DateTime? DownloadEndTime { get; set; }
|
|
|
|
public string VisitName { get; set; }
|
|
|
|
public ImageType ImageType { get; set; }
|
|
|
|
public int NoneDicomStudyCount { get; set; }
|
|
|
|
public int DicomStudyCount { get; set; }
|
|
|
|
public int ImageCount { get; set; }
|
|
public long ImageSize { get; set; }
|
|
|
|
|
|
public string UserName { get; set; }
|
|
|
|
public string UserFullName { get; set; }
|
|
public DateTime CreateTime { get; set; }
|
|
|
|
}
|
|
|
|
public class TrialIamgeDownQuery:PageInput
|
|
{
|
|
[NotDefault]
|
|
public Guid TrialId { get; set; }
|
|
|
|
public string? SubjectCode { get; set; }
|
|
|
|
public ImageType? ImageType { get; set; }
|
|
|
|
public UserTypeEnum? UserType { get; set; }
|
|
|
|
public bool? IsSuccess { get; set; }
|
|
}
|
|
|
|
public class SubjectVisitTaskInfo
|
|
{
|
|
public Guid SubjectVisitId { get; set; }
|
|
|
|
public Guid TaskId { get; set; }
|
|
}
|
|
}
|