using Castle.Core.Internal;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Contracts.DTO;
using IRaCIS.Core.Domain.Share;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service.Inspection.DTO
{
public class DataInspectionAddDTO
{
public Guid? TrialId { get; set; }
public Guid? SiteId { get; set; }
public Guid? SubjectId { get; set; }
public Guid? SubjectVisitId { get; set; }
///
/// 子类
///
public Guid? ChildrenType { get; set; }
///
/// 对象名称
///
public Guid? ObjectType { get; set; }
///
/// 操作类型
///
public Guid? OptType { get; set; }
///
/// 功能模块
///
public Guid? ModuleType { get; set; }
public string BlindName { get; set; } = string.Empty;
public string Reason { get; set; } = string.Empty;
public bool IsSign { get; set; }
public string JsonDetail { get; set; } = string.Empty;
///
/// 创建人名称
///
public string CreateUserName { get; set; } = string.Empty;
///
/// 项目名称
///
public string TrialName { get; set; } = string.Empty;
///
/// 中心名称
///
public string SiteName { get; set; } = string.Empty;
///
/// 患者Code
///
public string SubjectCode { get; set; } = string.Empty;
///
/// 检查批次名称
///
public string SubjectVisitName { get; set; } = string.Empty;
///
/// 角色名称
///
public string RoleName { get; set; } = string.Empty;
///
/// 中心Code
///
public string SiteCode { get; set; } = string.Empty;
///
/// 项目编码
///
public string ResearchProgramNo { get; set; } = string.Empty;
public List EnumList { get; set; } = new List { };
///
/// 标识
///
public string Identification { get; set; } = string.Empty;
///
/// 检查批次计划ID
///
public Guid? VisitStageId { get; set; }
///
/// 通用ID
///
public Guid? GeneralId { get; set; }
////需要单独处理
//public string IP { get; set; }
public DateTime? CreateTime { get; set; } = DateTime.Now;
public bool NeedSava { get; set; } = true;
}
public class EnumList
{
public string Key { get; set; } = string.Empty;
public string Code { get; set; } = string.Empty;
public string Type { get; set; } = string.Empty;
}
public interface IInspectionDTO
{
public DataInspectionAddDTO AuditInfo { get; set; }
}
public interface ISignDTO
{
public SignDTO SignInfo { get; set; }
}
#region Setting
///
/// 配置 基础逻辑信息
///
public class InsBasicTrialConfig : InspectionBase, IInspectionDTO, ISignDTO
{
public BasicTrialConfig OptCommand { get; set; }
}
///
/// 配置流程
///
public class InsTrialProcessConfig : InspectionBase, IInspectionDTO, ISignDTO
{
public TrialProcessConfig OptCommand { get; set; }
}
///
/// 配置加急信息
///
public class InsTrialUrgentConfig : InspectionBase, IInspectionDTO, ISignDTO
{
public TrialUrgentConfig OptCommand { get; set; }
}
#endregion
public class SetCheckPassDto
{
public Guid qcChallengeId { get; set; }
public Guid subjectVisitId { get; set; }
public QCChallengeCloseEnum closeEnum { get; set; }
public string closeReason { get; set; }
}
public class SetNeedReuploadDto
{
public Guid trialId { get; set; }
public Guid qcChallengeId { get; set; }
}
public class SetVisitUrgentDto
{
public Guid trialId { get; set; }
public Guid subjectVisitId { get; set; }
public bool setOrCancel { get; set; }
}
public class UpdateTrialStateDto
{
public Guid trialId {get; set; }
public string trialStatusStr { get; set; }
public string? reason { get; set; }
}
public class QCPassedOrFailedDto
{
public Guid trialId { get; set; }
public Guid subjectVisitId { get; set; }
public AuditStateEnum auditState { get; set; }
}
public class SetSeriesStateDto
{
public Guid subjectVisitId { get; set; }
public Guid studyId { get; set; }
public Guid seriesId { get; set; }
public int state { get; set; }
}
public class UpdateModalityDto
{
public Guid id { get; set; }
public int type { get; set; }
public string modality { get; set; }
public string bodyPart { get; set; }
}
public class CloseQCChallengeDto
{
public Guid qcChallengeId { get; set; }
public Guid subjectVisitId { get; set; }
public QCChallengeCloseEnum closeEnum { get; set; }
public string closeReason { get; set; }
}
public class AddOrUpdateQCChallengeDto
{
public QCChallengeCommand qaQuestionCommand { get; set; }
public Guid trialId { get; set; }
public TrialQCProcess trialQCProcess { get; set; }
public CurrentQC currentQCType { get; set; }
}
public class AddOrUpdateQCQuestionAnswerListDto
{
public QCQuestionAnswerCommand[] qcQuestionAnswerCommands { get; set; }
public Guid trialId { get; set; }
public Guid subjectVisitId { get; set; }
public TrialQCProcess trialQCProcess { get; set; }
public CurrentQC currentQCType { get; set; }
}
public class SetCheckPassDt
{
public string ManualPassReason { get; set; } = string.Empty;
public Guid Id { get; set; }
}
public class ObtainOrCancelQCTaskDto
{
public Guid trialId { get; set; }
public Guid subjectVisitId { get; set; }
public bool obtaionOrCancel { get; set; }
}
public class ReadingClinicalDataSignIndto
{
///
/// 阅片临床数据ID
///
public Guid ReadingClinicalDataId { get; set; }
[NotDefault]
public Guid TrialReadingCriterionId { get; set; }
}
///
/// 稽查泛型Dto
///
/// 泛型
public class DataInspectionDto
{
public T Data { get; set; }
public SignDTO SignInfo { get; set; }
}
#region Qc
public class DeleteStudyList
{
public Guid[] ids { get; set; }
public Guid subjectVisitId { get; set; }
public Guid trialId { get; set; }
}
#endregion
#region 患者
public class InsSubjectCommand : InspectionBase, IInspectionDTO, ISignDTO
{
public SubjectCommand OptCommand { get; set; }
}
public class InsUpdateSubjectStatus : InspectionBase, IInspectionDTO, ISignDTO
{
public SubjectStatusChangeCommand OptCommand { get; set; }
}
public class InsDeleteSubjectDto : InspectionBase, IInspectionDTO, ISignDTO
{
public DeleteSubjectDto OptCommand { get; set; }
}
public class DeleteSubjectDto
{
public Guid SubjectId { get; set; }
public Guid TrialId { get; set; }
public Guid SiteId { get; set; }
public string Code { get; set; } = string.Empty;
}
#endregion
///
/// 用户 签名某个文档 Dto
///
public class TrialDocumentConfirmDTO : InspectionBase, IInspectionDTO, ISignDTO
{
public UserConfirmCommand OptCommand { get; set; }
}
public class GetDataInspectionOutDto : DataInspection
{
public Guid? TrialReadingCriterionId { get; set; }
public string TrialReadingCriterionName { get; set; }
public string BlindName { get; set; }
public string TaskName { get; set; }
//public string FirstName { get; set; } = string.Empty;
//public string LastName { get; set; } = string.Empty;
public string VisitName { get; set; } = string.Empty;
//public string ParentJson { get; set; } = string.Empty;
public string CreateUserRealName { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public string ModuleTypeName { get; set; } = string.Empty;
public string SignText { get; set; } = string.Empty;
public decimal? VisitNum { get; set; }
public bool? InPlan { get; set; }
public string OptType { get; set; } = string.Empty;
public Guid? FrontAuditConfigId { get; set; }
///
/// 父标识
///
public string ParentIdentification { get; set; }
public string ExperimentName { get; set; }
public string SiteCode { get; set; }
public string ResearchProgramNo { get; set; }
public string SiteName { get; set; }
public string SubjectCode { get; set; }
public string SubjectVisitName { get; set; }
}
public class UpdateTrialState
{
public Guid trialId { get; set; }
public string trialStatusStr { get; set; }
public string reason { get; set; }
}
public class AbandonTrial
{
public Guid trialId { get; set; }
public bool isAbandon { get; set; }
}
public class GetDataInspectionDto : PageInput
{
///
/// 项目iD
///
public Guid? TrialId { get; set; }
///
/// 中心
///
public Guid? SiteId { get; set; }
///
/// 患者
///
public string SubjectInfo { get; set; } = string.Empty;
///
///
///
public decimal? VisitPlanInfo { get; set; }
///
/// 开始时间
///
public DateTime? StartTime { get; set; }
///
/// 结束时间
///
public DateTime? EndTime { get; set; }
///
/// 功能模块
///
public Guid? ModuleType { get; set; }
///
/// Description
///
public string Description { get; set; } = string.Empty;
///
/// 操作人名称模糊查询
///
public string OpByUserName { get; set; } = string.Empty;
///
/// 阅读片人
///
public string ReaderUser { get; set; } = string.Empty;
///
/// 是否有签名
///
public bool? IsSign { get; set; }
///
/// 批次Id
///
public Guid? BatchId { get; set; }
public Guid? GeneralId { get; set; }
public DateTime? RelationDeadlineTime { get; set; }
public Guid? ObjectRelationParentId { get; set; }
public Guid? TrialReadingCriterionId { get; set; }
}
public class InspectionBase
{
public DataInspectionAddDTO AuditInfo { get; set; }
public SignDTO SignInfo { get; set; } = new SignDTO();
}
}