EI-Med-Viewer-api/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs

543 lines
15 KiB
C#

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<QCQuestionAnswerCommand> QCQuestionAnswerList { get; set; } = new List<QCQuestionAnswerCommand>();
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*/
{
/// <summary>
/// 文件名称
/// </summary>
public string FileName { get; set; }
/// <summary>
/// 文件路径
/// </summary>
public string FilePath { get; set; }
/// <summary>
/// 相对路径
/// </summary>
public string RelativePath { get; set; }
/// <summary>
/// 创建人
/// </summary>
public Guid CreateUserId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public Guid TrialId { get; set; }
/// <summary>
/// 创建者名称
/// </summary>
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<QCChanllengeDialogDTO> DialogList { get; set; } = new List<QCChanllengeDialogDTO>();
}
public class TrialVisitQADTO
{
public SubjectClinicalDataDto SubjectClinicalData { get; set; } = new SubjectClinicalDataDto();
public List<NoneDicomStudyView> NoneDicomStudyList { get; set; } = new List<NoneDicomStudyView>();
public List<QCQuestionAnswerItemDto> QCQuestionAnswerList { get; set; } = new List<QCQuestionAnswerItemDto>();
public List<QAStudyInfoDTO> StudyList { get; set; } = new List<QAStudyInfoDTO>();
public List<QASeriesInfoDto> SeriesList { get; set; } = new List<QASeriesInfoDto>();
public QARelationInfo RelationInfo { get; set; } = new QARelationInfo();
}
public class QAStudySeriesInfo
{
public List<QAStudyInfoDTO> StudyList { get; set; } = new List<QAStudyInfoDTO>();
public List<QASeriesInfoDto> SeriesList { get; set; } = new List<QASeriesInfoDto>();
}
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<string> InstancePathList = new List<string>();
}
public class QADialogCommand
{
public string TalkContent { get; set; } = String.Empty;
public Guid QCChallengeId { get; set; }
public Guid SubjectVisitId { get; set; }
}
/// <summary>
/// 关闭一致性质疑Dto
/// </summary>
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<ParamInfoDto> ParamInfoList
{
get {
try
{
return JsonConvert.DeserializeObject<List<ParamInfoDto>>(ParamInfo);
}
catch (Exception e)
{
return new List<ParamInfoDto>();
}
}
}
}
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; }
}
}