EI-Image-Viewer-Api/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs

1008 lines
24 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.Service.Reading.Dto;
using IRaCIS.Core.Domain.Share;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace IRaCIS.Core.Application.Contracts
{
public class BasicTrialConfig
{
public Guid TrialId { get; set; }
/// <summary>
/// 患者编号具体规则
/// </summary>
public string SubjectCodeRule { get; set; } = string.Empty;
public bool IsSubjectSecondCodeView { get; set; }
/// <summary>
/// 是否 验证拍片日期
/// </summary>
public bool IsVerifyVisitImageDate { get; set; } = false;
/// <summary>
/// 是否 提醒患者编号规则
/// </summary>
public bool IsNoticeSubjectCodeRule { get; set; } = true;
/// <summary>
/// 是否 有基准时间(首次给药时间)
/// </summary>
public bool IsHaveFirstGiveMedicineDate { get; set; } = true;
/// <summary>
/// 是否有 患者年龄
/// </summary>
public bool IsHaveSubjectAge { get; set; } = false;
public bool IsTrialBasicLogicConfirmed { get; set; } = false;
/// <summary>
/// 出组后计划外检查批次名称
/// </summary>
public string OutEnrollmentVisitName { get; set; } = "EOT";
public bool IsSubjectSexView { get; set; } = false;
public int ChangeDefalutDays { get; set; } = 5;
/// <summary>
/// 跨项目复制
/// </summary>
public bool IsImageReplicationAcrossTrial { get; set; } = false;
public string BodyPartTypes { get; set; } = string.Empty;
public string Modalitys { get; set; } = string.Empty;
public List<string> ModalityList { get; set; } = new List<string>();
}
public class TrialProcessConfig
{
public List<Guid> CriterionIds { get; set; } = new List<Guid>();
public List<Guid> TrialCriterionIds { get; set; } = new List<Guid>();
public Guid TrialId { get; set; }
/// <summary>
/// 临床信息传输 1系统录入2系统录入+PDF 0
/// </summary>
public int ClinicalInformationTransmissionEnum { get; set; } = 1;
public List<Guid> ClinicalDataTrialSetIds { get; set; } = new List<Guid>();
/// <summary>
/// QC流程 0 不审1 单审2双审
/// </summary>
public TrialQCProcess QCProcessEnum { get; set; }
/// <summary>
/// 影像一致性核查
/// </summary>
public bool IsImageConsistencyVerification { get; set; } = false;
/// <summary>
/// 流程是否确认
/// </summary>
public bool IsTrialProcessConfirmed { get; set; } = false;
/// <summary>
/// 1 Mint、2 PACS
/// </summary>
public int ImagePlatform { get; set; } = 1;
//阅片方式
public int ReadingMode { get; set; }
////阅片类型
//public int ReadingType { get; set; }
//public bool IsGlobalReading { get; set; } = true;
public bool? IsArbitrationReading { get; set; }
public bool? IsClinicalReading { get; set; }
public int? DigitPlaces { get; set; }
// ////读片任务显示是否顺序
//// public bool IsReadingTaskViewInOrder { get; set; } = false;
/// <summary>
/// 仲裁规则
/// </summary>
public ArbitrationRule ArbitrationRule { get; set; }
/// <summary>
/// 阅片是否显示患者信息
/// </summary>
public bool IsReadingShowSubjectInfo { get; set; } = false;
/// <summary>
/// 阅片是否显示既往结果
/// </summary>
public bool IsReadingShowPreviousResults { get; set; }
public ReadingTaskViewMethod ReadingTaskViewEnum { get; set; }
}
public class TrialTaskConfig
{
public Guid TrialId { get; set; }
public TaskAllocateObj TaskAllocateObjEnum { get; set; }
public bool IsFollowVisitAutoAssign { get; set; } = true;
public bool IsFollowGlobalVisitAutoAssign { get; set; } = true;
public bool IsFollowJudgeTaskAutoAssign { get; set; } = true;
public TaskAllocateDefaultState FollowVisitAutoAssignDefaultState { get; set; } = TaskAllocateDefaultState.Allocated;
public TaskAllocateDefaultState FollowGlobalVisitAutoAssignDefaultState { get; set; } = TaskAllocateDefaultState.Allocated;
public TaskAllocateDefaultState FollowJudgeTaskAutoAssignDefaultState { get; set; } = TaskAllocateDefaultState.Allocated;
}
public class TrialBasicConfigView : TrialTaskConfigView
{
/// <summary>
/// 流程是否确认
/// </summary>
public bool IsTrialProcessConfirmed { get; set; } = false;
//阅片方式
public int ReadingMode { get; set; }
//public bool IsGlobalReading { get; set; } = true;
public bool? IsArbitrationReading { get; set; }
public bool? IsClinicalReading { get; set; }
public ArbitrationRule ArbitrationRule { get; set; }
}
public class TrialProcessConfigDTO
{
/// <summary>
/// QC流程 0 不审1 单审2双审
/// </summary>
public TrialQCProcess QCProcessEnum { get; set; } = TrialQCProcess.DoubleAudit;
public bool IsImageConsistencyVerification { get; set; } = true;
}
public class TrialTaskConfigView : TrialTaskConfig
{
public ReadingTaskViewMethod ReadingTaskViewEnum { get; set; }
public bool IsReadingTaskViewInOrder { get; set; } = true;
//public ReadingMethod ReadingType { get; set; }
/// <summary>
/// 阅片是否显示患者信息
/// </summary>
public bool IsReadingShowSubjectInfo { get; set; }
/// <summary>
/// 阅片是否显示既往结果
/// </summary>
public bool IsReadingShowPreviousResults { get; set; }
public ReadingTool ReadingTool { get; set; }
/// <summary>
/// QC流程 0 不审1 单审2双审
/// </summary>
public TrialQCProcess QCProcessEnum { get; set; } = TrialQCProcess.DoubleAudit;
/// <summary>
/// 影像一致性核查
/// </summary>
public bool IsImageConsistencyVerification { get; set; } = true;
}
public class TrialReadingTaskViewConfig
{
public Guid TrialId { get; set; }
public ReadingTaskViewMethod ReadingTaskViewEnum { get; set; }
public bool IsReadingTaskViewInOrder { get; set; } = true;
/// <summary>
/// 阅片是否显示患者信息
/// </summary>
public bool IsReadingShowSubjectInfo { get; set; }
/// <summary>
/// 阅片是否显示既往结果
/// </summary>
public bool IsReadingShowPreviousResults { get; set; }
}
public class TrialJudgeTaskConfig
{
public Guid TrialId { get; set; }
public bool IsFollowJudgeTaskAutoAssign { get; set; }
public TaskAllocateDefaultState FollowJudgeTaskAutoAssignDefaultState { get; set; }
}
public class TrialUrgentConfig
{
public Guid TrialId { get; set; }
public bool IsSubjectExpeditedView { get; set; } = false;
/// <summary>
/// 是否有 入组评估确认
/// </summary>
public bool IsEnrollementQualificationConfirm { get; set; } = false;
/// <summary>
/// 流程配置是否确认
/// </summary>
public bool IsTrialUrgentConfirmed { get; set; } = false;
public bool IsUrgent { get; set; }
public bool IsPDProgressView { get; set; }
}
public class TrialStateChangeDTO
{
public Guid Id { get; set; }
public Guid TrialId { get; set; }
public string OriginState { get; set; } = String.Empty;
public string NowState { get; set; } = String.Empty;
public string Reason { get; set; } = String.Empty;
public DateTime CreateTime { get; set; }
public Guid CreateUserId { get; set; }
public string UserName { get; set; } = String.Empty;
public string UserRealName { get; set; } = String.Empty;
public string SignCode { get; set; } = string.Empty;
}
public class GetTrialReadingInfoOutDto
{
/// <summary>
/// 项目ID
/// </summary>
public Guid TrialId { get; set; }
/// <summary>
/// 是否有阅片期
/// </summary>
public bool IsReadingPeriod { get; set; } = true;
public bool IsSystemCriterion
{
get
{
return this.ReadingQuestionCriterionSystemId != null;
}
}
/// <summary>
/// 阅片平台
/// </summary>
public int ImagePlatform { get; set; } = 1;
/// <summary>
/// 修约小数点
/// </summary>
public int? DigitPlaces { get; set; } = 2;
/// <summary>
/// 系统标准ID
/// </summary>
public Guid? ReadingQuestionCriterionSystemId { get; set; }
/// <summary>
/// 阅片模式
/// </summary>
public ReadingMethod ReadingType { get; set; }
public string GlobalUpdateType { get; set; } = string.Empty;
/// <summary>
/// 任务组织级别
/// </summary>
public ReadingTaskViewMethod ReadingTaskViewEnum { get; set; }
/// <summary>
/// 影像是否有标注
/// </summary>
public bool IsImageIabeled { get; set; }
/// <summary>
/// IR阅片是否显示患者信息
/// </summary>
public bool IsReadingShowSubjectInfo { get; set; } = false;
/// <summary>
/// IR阅片是否显示既往结果
/// </summary>
public bool IsReadingShowPreviousResults { get; set; }
//读片任务显示是否顺序
public bool IsReadingTaskViewInOrder { get; set; } = true;
public List<Guid> GlobalAssessTypeIds { get; set; }
/// <summary>
/// 全局阅片
/// </summary>
public bool IsGlobalReading { get; set; }
/// <summary>
/// 阅片工具
/// </summary>
public ReadingTool? ReadingTool { get; set; } = IRaCIS.Core.Domain.Share.ReadingTool.Dicom;
/// <summary>
/// 仲裁规则/对象
/// </summary>
public ArbitrationRule ArbitrationRule { get; set; }
/// <summary>
/// 阅片信息签名时间
/// </summary>
public DateTime? ReadingInfoSignTime { get; set; }
public bool IsSign {
get {
return this.ReadingInfoSignTime != null;
}
}
/// <summary>
/// eCRF报告是否显示在图像页面
/// </summary>
public bool IseCRFShowInDicomReading { get; set; } = false;
public bool IsClinicalReading { get; set; }
/// <summary>
/// 仲裁阅片
/// </summary>
public bool? IsArbitrationReading { get; set; }
/// <summary>
/// 是否必须全局阅片
/// </summary>
public bool IsMustGlobalReading { get; set; } = false;
///// <summary>
///// 阅片模式
///// </summary>
//public ReadingMethod ReadingType { get; set; }
///// <summary>
///// 全局阅片
///// </summary>
//public bool IsGlobalReading { get; set; }
/// <summary>
/// 肿瘤学阅片 原字段 IsClinicalReading
/// </summary>
public bool IsOncologyReading { get; set; }
}
public class ReadingCriterionPageDto
{
/// <summary>
/// pageId
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public Guid TrialId { get; set; }
/// <summary>
/// 分页名称
/// </summary>
public string PageName { get; set; }
/// <summary>
/// 是否启用
/// </summary>
public bool IsEnable { get; set; }
/// <summary>
/// 是否公共分页
/// </summary>
public bool IsPublicPage { get; set; }
public int ShowOrder { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 创建用户ID
/// </summary>
public Guid CreateUserId { get; set; }
}
public class TrialReadQuestion :ReadingQuestionTrial
{
/// <summary>
/// 分页名称
/// </summary>
public string PageName { get; set; }
/// <summary>
/// 父问题名称
/// </summary>
public string ParentQuestionName { get; set; }
/// <summary>
/// Parent字典code
/// </summary>
public string ParentDictionaryCode { get; set; } = string.Empty;
/// <summary>
/// Parent问题类型
/// </summary>
public TableQuestionType? ParentQuestionGenre { get; set; }
public int? RelevanceShowOrder { get; set; }
public int? ParentQuestionShowOrder { get; set; }
}
public class TrialJudgeQuestion
{
public Guid ReadingQuestionCriterionTrialId { get; set; }
public Guid QuestionId { get; set; }
/// <summary>
/// 问题名称
/// </summary>
public string QuestionName { get; set; }
public string PageName { get; set; }
/// <summary>
/// 答案分组
/// </summary>
public string AnswerGroup { get; set; } = string.Empty;
/// <summary>
/// 答案组合
/// </summary>
public string AnswerCombination { get; set; } = string.Empty;
/// <summary>
/// 裁判类型
/// </summary>
public JudgeTypeEnum JudgeType { get; set; }
}
public class TrialReadingCriterion
{
public Guid Id { get; set; }
/// <summary>
/// 标准
/// </summary>
public string CriterionName { get; set; }
}
public class GetTrialConfirmCriterionListInDto
{
public Guid TrialId { get; set; }
}
public class GetTrialConfirmCriterionOutDto
{
public Guid TrialCriterionId { get; set; }
public string CriterionName { get; set; }
}
public class TrialReadingInfoSignInDto
{
[NotDefault]
public Guid TrialReadingCriterionId { get; set; }
}
public class GetTrialReadingCriterionInfoOutDto
{
/// <summary>
/// 阅片信息签名时间
/// </summary>
public DateTime? ReadingInfoSignTime { get; set; }
public bool IsSign
{
get
{
return this.ReadingInfoSignTime != null;
}
}
/// <summary>
/// 是否必须全局阅片
/// </summary>
public bool IsMustGlobalReading { get; set; } = false;
/// <summary>
/// 修约小数点
/// </summary>
public int? DigitPlaces { get; set; }
/// <summary>
/// eCRF报告是否显示在图像页面
/// </summary>
public bool IseCRFShowInDicomReading { get; set; } = false;
public bool IsFromSystem { get; set; } = false;
public FormType? FormType { get; set; }
public bool IsSystemCriterion { get; set; }
/// <summary>
/// 项目标准Id
/// </summary>
public Guid? TrialCriterionId { get; set; }
/// <summary>
/// 项目分页
/// </summary>
public List<ReadingCriterionPageDto> ReadingCriterionPageList { get; set; }
/// <summary>
/// 项目问题集合
/// </summary>
public List<TrialReadQuestion> TrialQuestionList { get; set; }
}
public class SetOncologySetInDto
{
/// <summary>
/// 项目标准ID
/// </summary>
public Guid TrialReadingCriterionId { get; set; }
public List<Guid> OncologyAssessIds { get; set; }
/// <summary>
/// 评估结果
/// </summary>
public string EvaluationResult { get; set; } = string.Empty;
/// <summary>
/// 评估原因
/// </summary>
public string EvaluationReason { get; set; } = string.Empty;
/// <summary>
/// 是否显示详情
/// </summary>
public bool IsShowDetail { get; set; }
}
public class GetOncologySetOutDto
{
public bool IsSign { get; set; }
public List<Guid> OncologyAssessIds { get; set; }
public bool IsSystemCriterion { get; set; }
/// <summary>
/// 评估原因
/// </summary>
public string EvaluationReason { get; set; } = string.Empty;
}
public class GetGlobalReadingOutDto
{
public List<CriterionDictionaryInfo> GlobalAssessTypes { get; set; }
/// <summary>
/// 全局阅片
/// </summary>
public bool IsGlobalReading { get; set; }
public bool IsSystemCriterion { get; set; }
public bool IsSign { get; set; }
}
public class AsyncTrialCriterionDictionaryInDto
{
[NotDefault]
public Guid TrialReadingCriterionId { get; set; }
}
public class SetGlobalReadingInfoInDto
{
[NotDefault]
public Guid TrialReadingCriterionId { get; set; }
public List<SetGlobalReading> GlobalAssessList { get; set; }
///// <summary>
///// 全局阅片
///// </summary>
//public bool IsGlobalReading { get; set; }
}
public class SetGlobalReading
{
/// <summary>
/// DictionaryId
/// </summary>
public Guid DictionaryId { get; set; }
/// <summary>
/// IsBaseLineUse
/// </summary>
public bool IsBaseLineUse { get; set; }
/// <summary>
/// IsBaseUse
/// </summary>
public bool IsFollowVisitUse { get; set; }
}
public class GetOncologySetInDto
{
public Guid TrialReadingCriterionId { get; set; }
}
public class GetTrialReadingInfoInDto
{
[NotDefault]
public Guid TrialId { get; set; }
[NotDefault]
public Guid TrialReadingCriterionId { get; set; }
}
public class SetTrialReadingCriterionInDto
{
public Guid TrialReadingCriterionId { get; set; }
/// <summary>
/// 表单类型
/// </summary>
public FormType FormType { get; set; }
///// <summary>
///// 修约小数点
///// </summary>
//public int? DigitPlaces { get; set; }
public bool IsSignSave { get; set; } = false;
}
public class SetCriterionReadingInfoInDto
{
/// <summary>
/// 项目标准ID
/// </summary>
public Guid TrialReadingCriterionId { get; set; }
/// <summary>
/// eCRF报告是否显示在图像页面
/// </summary>
public bool IseCRFShowInDicomReading { get; set; }
/// <summary>
/// 是否有阅片期
/// </summary>
public bool IsReadingPeriod { get; set; } = true;
public string GlobalUpdateType { get; set; } = string.Empty;
/// <summary>
/// 修约小数点
/// </summary>
public int? DigitPlaces { get; set; } = 2;
/// <summary>
/// 阅片工具
/// </summary>
public ReadingTool? ReadingTool { get; set; }
/// <summary>
/// 阅片平台
/// </summary>
public ImagePlatform ImagePlatform { get; set; } = ImagePlatform.MINT;
/// <summary>
/// 任务组织级别
/// </summary>
public ReadingTaskViewMethod ReadingTaskViewEnum { get; set; }
/// <summary>
/// 影像是否有标注
/// </summary>
public bool IsImageIabeled { get; set; }
//读片任务显示是否顺序
public bool IsReadingTaskViewInOrder { get; set; } = true;
/// <summary>
/// IR阅片是否显示患者信息
/// </summary>
public bool IsReadingShowSubjectInfo { get; set; } = false;
/// <summary>
/// IR阅片是否显示既往结果
/// </summary>
public bool IsReadingShowPreviousResults { get; set; }
/// <summary>
/// 仲裁规则/对象
/// </summary>
public ArbitrationRule ArbitrationRule { get; set; }
/// <summary>
/// 阅片模式
/// </summary>
public ReadingMethod ReadingType { get; set; } = ReadingMethod.Double;
/// <summary>
/// 全局阅片
/// </summary>
public bool IsGlobalReading { get; set; } = true;
/// <summary>
/// 仲裁阅片
/// </summary>
public bool IsArbitrationReading { get; set; } = true;
/// <summary>
/// 肿瘤学阅片 原字段 IsClinicalReading
/// </summary>
public bool IsOncologyReading { get; set; }
}
public class SignConfirmDTO
{
[NotDefault]
public Guid TrialId { get; set; }
//[NotDefault]
//public Guid SignId { get; set; }
[NotDefault]
public string SignCode { get; set; } = string.Empty;
}
public class TrialConfigDTO : BasicTrialConfig
{
public List<Guid> TrialCriterionIds { get; set; } = new List<Guid>();
public List<string> TrialCriterionNames { get; set; } = new List<string>();
public List<Guid> ClinicalDataTrialSetIds { get; set; } = new List<Guid>();
public int ClinicalInformationTransmissionEnum { get; set; }
public bool IsTrialProcessConfirmed { get; set; }
public bool IsTrialUrgentConfirmed { get; set; }
/// <summary>
/// QC流程 0 不审1 单审2双审
/// </summary>
public TrialQCProcess QCProcessEnum { get; set; }
/// <summary>
/// 影像一致性核查
/// </summary>
public bool IsImageConsistencyVerification { get; set; } = false;
//阅片方式
public int ReadingMode { get; set; }
public bool IsSubjectExpeditedView { get; set; } = false;
/// <summary>
/// 是否有 入组评估确认
/// </summary>
public bool IsEnrollementQualificationConfirm { get; set; } = false;
public bool IsUrgent { get; set; }
public bool IsPDProgressView { get; set; }
public bool IsQCQuestionConfirmed { get; set; }
public string TrialStatusStr { get; set; } = string.Empty;
public List<string> ClinicalDataSetNames { get; set; } = new List<string>();
//public bool IsTrialStart { get; set; } = false;
//public List<Guid> CriterionIds { get; set; } = new List<Guid>();
//public bool IsGlobalReading { get; set; } = true;
//public bool? IsArbitrationReading { get; set; }
//public bool? IsClinicalReading { get; set; }
//public ArbitrationRule ArbitrationRule { get; set; }
//public int DigitPlaces { get; set; }
///// <summary>
///// 1 Mint、2 PACS
///// </summary>
//public int ImagePlatform { get; set; } = 1;
////阅片类型
//public int ReadingType { get; set; }
//读片任务显示是否顺序
//public bool IsReadingTaskViewInOrder { get; set; }
//public string DocumentConfirmSignText { get; set; } = string.Empty;
//public string ImageQCSignText { get; set; } = string.Empty;
//public string PreliminaryAuditReuploadText { get; set; } = string.Empty;
//public string ReviewAuditReuploadText { get; set; } = string.Empty;
//public string CheckBackText { get; set; } = string.Empty;
//public string CheckCloseText { get; set; } = string.Empty;
//public string ChallengeTypes { get; set; } = string.Empty;
//public bool IsImageExport { get; set; } = false;
//public bool IsCRAAuditClinicalInformation { get; set; } = false;
//public string TrialSiteSurveyUserRoles { get; set; } = string.Empty;
//public string TrialSiteSurveyEquipmentType { get; set; } = string.Empty;
}
}