添加项目文件。

This commit is contained in:
DK
2022-03-28 09:57:06 +08:00
parent 3338504c58
commit 9e9868bc4c
527 changed files with 38592 additions and 0 deletions
@@ -0,0 +1,65 @@
using System;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.ViewModels
{
public class SubjectDTO: SubjectCommand
{
public Guid SubjectVisitId { get; set; }
public int StudyCount { get; set; }
public int VisitCount { get; set; }
public int PlanVisitCount { get; set; }
public string Modalities { get; set; }
}
public class SubjectCommand
{
public Guid? Id { get; set; }
public string Code { get; set; }//患者匿名编码
public string Name { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
public Guid SiteId { get; set; }
public Guid TrialId { get; set; }
public string MedicalNo { get; set; }
public int Status { get; set; }
public string Reason { get; set; }
}
public class SubjectQueryModel: SubjectDTO
{
public DateTime? CreateTime { get; set; }
public DateTime? UpdateTime { get; set; }
public string SiteName { get; set; }
public string VisitName { get; set; }
}
public class SubjectQueryParam : PageInput
{
public Guid TrialId { get; set; } = Guid.Empty;
public string Code { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public string Sex { get; set; } = string.Empty;
public Guid? SiteId { get; set; }
//public Guid? SubjectVisitId { get; set; } = Guid.Empty;
public int? Status { get; set; }
}
public class SubjectSelect
{
public Guid SubjectId { get; set; }
public string Name { get; set; }
public string Code { get; set; }
public string Sex { get; set; }
public int Age { get; set; }
}
}
@@ -0,0 +1,234 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using IRaCIS.Core.Domain.Share;
namespace IRaCIS.Application.ViewModels
{
/// <summary>
///后台 工作量审核视图模型
/// </summary>
public class WorkLoadDetailDTO : WorkloadDTO
{
public DateTime CreateTime { get; set; }
public string ChineseName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Code { get; set; }
public string Indication { get; set; }
public int RowIntId { get; set; }
public Guid RowGuid { get; set; }
public string YearMonthStr { get; set; }
public string WorkTimeStr => YearMonthStr;
public bool IsLock { get; set; } = false;
}
public class WorkLoadDetailViewModel : WorkloadDTO
{
public DateTime CreateTime { get; set; }
public string ChineseName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Code { get; set; }
public string Indication { get; set; }
public Guid RowGuid { get; set; }
public string YearMonthStr { get; set; }
public bool IsLock { get; set; } = false;
public string DeclareTimeStr => CreateTime.ToString("yyyy-MM-dd");
public string WorkTimeStr => WorkTime.ToString("yyyy-MM-dd");
}
public class CalculatePaymentDTO : WorkloadDTO
{
public string TrialCode { get; set; }
public decimal? TrialAdditional { get; set; }
public decimal AdjustmentMultiple { get; set; }
//public double RankPrice { get; set; }
public decimal PersonalAdditional { get; set; }
public decimal TimepointPrice { get; set; }
public decimal TimepointIn24HPrice { get; set; }
public decimal TimepointIn48HPrice { get; set; }
public decimal AdjudicationPrice { get; set; }
public decimal AdjudicationIn24HPrice { get; set; }
public decimal AdjudicationIn48HPrice { get; set; }
public decimal GlobalPrice { get; set; }
public decimal TrainingPrice { get; set; }
public decimal DowntimePrice { get; set; }
public decimal RefresherTrainingPrice { get; set; }
}
/// <summary>
/// 工作量审核数据库查询模型
/// </summary>
public class WorkloadDTO
{
public Guid? Id { get; set; }
public Guid TrialId { get; set; }
public Guid DoctorId { get; set; }
public int DataFrom { get; set; }
public DateTime WorkTime { get; set; }
public int Training { get; set; }
public int Downtime { get; set; }
public int Timepoint { get; set; }
public int TimepointIn24H { get; set; }
public int TimepointIn48H { get; set; }
public int Adjudication { get; set; }
public int AdjudicationIn24H { get; set; }
public int AdjudicationIn48H { get; set; }
public int Global { get; set; }
public int RefresherTraining { get; set; }
}
/// <summary>
/// 工作量分页列表模型 医生端查询模型
/// </summary>
public class WorkLoadQueryDTO : PageInput
{
public Guid TrialId { get; set; }
public int WorkLoadFromStatus { get; set; } // 关联枚举
public DateTime? SearchBeginDateTime { get; set; }
public DateTime? SearchEndDateTime { get; set; }
}
/// <summary>
/// 后台查询模型
/// </summary>
public class WorkLoadStatsQueryDTO : PageInput
{
public Guid? TrialId { get; set; }
public Guid? DoctorId { get; set; } = Guid.Empty;
public List<int> WorkLoadFromStatus { get; set; } = new List<int>(); // 关联枚举
public DateTime? SearchBeginDateTime { get; set; }
public DateTime? SearchEndDateTime { get; set; }
}
public class WorkLoadDetailQueryDTO
{
public Guid TrialId { get; set; } = Guid.Empty;
public Guid DoctorId { get; set; } = Guid.Empty;
public string YearMonthStr { get; set; }
}
public class CalculateDoctorAndMonthDTO
{
[Required(ErrorMessage = "需要有效的时间")]
public DateTime CalculateMonth { get; set; }
[Required(ErrorMessage = "需要有效的医生列表")]
public List<Guid> NeedCalculateReviewers { get; set; }
}
public class WorkLoadDoctorQueryDTO : PageInput
{
public Guid TrialId { get; set; } = Guid.Empty;
}
public class WorkLoadCommand : WorkloadDTO
{
public Guid CreateUserId { get; set; }
public int CreateUserType { get; set; }
public Guid UpdateUserId { get; set; }
}
public class ExistWorkloadViewModel
{
public bool IsExist { get; set; }
public WorkloadDTO WorkLoad { get; set; }
}
public class WorkloadCommand : WorkloadDTO
{
}
public class WorkloadExistQueryDTO
{
public Guid TrialId { get; set; }
public Guid DoctorId { get; set; }
public DateTime WorkDate { get; set; }
}
public class WorkLoadAndTrainingDTO
{
public Guid DoctorId { get; set; }/*=Guid.Empty;*/
public string Code { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string ChineseName { get; set; }
public DateTime? EnrollTime { get; set; }
public int ReviewerReadingType { get; set; }
public string EnrollTimeStr => EnrollTime?.ToString("yyyy-MM-dd HH:mm:ss");
public DateTime? UpdateTime { get; set; }
public string UpdateTimeStr => UpdateTime?.ToString("yyyy-MM-dd HH:mm:ss");
public int TrainingTimes { get; set; }
public int Downtime { get; set; }
//读片点
public int Timepoint { get; set; }
public int TimepointIn24H { get; set; }
public int TimepointIn48H { get; set; }
//裁判阅片
public int Adjudication { get; set; }
public int AdjudicationIn24H { get; set; }
public int AdjudicationIn48H { get; set; }
//全局阅片
public int Global { get; set; }
public int RefresherTraining { get; set; }
}
public class WorkLoadAndAgreementDTO : WorkLoadAndTrainingDTO
{
public Guid AgreementId { get; set; }
public string AgreementPath { get; set; }
public string AgreementFileName => AgreementPath?.Split('/').Last();
public string AgreementFullPath => SystemConfig.RootUrl + AgreementPath;
}
}
@@ -0,0 +1,40 @@
using System;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using IRaCIS.Core.Domain.Share;
namespace IRaCIS.Application.ViewModels
{
/// <summary>
/// 影像采集规范
/// </summary>
public class TrialAttachmentCommand
{
public Guid? Id { get; set; }
public Guid TrialId { get; set; }
public string Type { get; set; }
public string DocumentName { get; set; }
public string DocumentPath { get; set; }
public string DocumentFullPath
{
get { return SystemConfig.RootUrl + DocumentPath; }
}
}
public class AcquisitionSpecificationDTO : TrialAttachmentCommand
{
public string TrialCode { get; set; }
public string Indication { get; set; }
public string OptUserName { get; set; }
public DateTime CreateTime { get; set; }
}
public class ImageAcquisitionSpecificationQueryDTO : PageInput
{
public Guid TrialId { get; set; }
}
}
@@ -0,0 +1,21 @@
using System;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.ViewModels
{
public class TrialInterviewDTO
{
public Guid Id { get; set; }
public Guid TrialId { get; set; }
public string Stage { get; set; }
public string InterViewTime { get; set; }
public string Description { get; set; }
public DateTime CreateTime { get; set; }
}
public class InterviewQueryDTO : PageInput
{
public Guid TrialId { get; set; } = Guid.Empty;
public string Keyword { get; set; } = string.Empty;
}
}
@@ -0,0 +1,28 @@
using System;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.ViewModels
{
public class TrialResearchCenterDTO
{
public Guid Id { get; set; }
public Guid TrialId { get; set; }
public Guid SiteId { get; set; }
public string MainCenter { get; set; }
public DateTime OptTime { get; set; }
public int State { get; set; }
}
public class TrialResearchCenterDetailDTO : TrialResearchCenterDTO
{
public string TrialCode { get; set; }
public string TrialName { get; set; }
public string ResearchCenterName { get; set; }
}
public class TrialCenterQueryDTO : PageInput
{
public Guid TrialId { get; set; }
public Guid CenterId { get; set; }
}
}
@@ -0,0 +1,72 @@
using System;
using System.Collections.Generic;
namespace IRaCIS.Core.Application.Contracts.Trial.DTO
{
public class RevenusVerifyQueryDTO
{
public DateTime BeginDate { get; set; } = DateTime.Now;
public DateTime EndDate { get; set; } = DateTime.Now;
}
public class AnalysisVerifyQueryDTO
{
public DateTime BeginDate { get; set; } = DateTime.Now;
public DateTime EndDate { get; set; } = DateTime.Now;
}
public class AnalysisNeedLockDTO
{
public string YearMonth { get; set; }
public string ReviewerCode { get; set; }
public string ReviewerName { get; set; }
public string ReviewerNameCN { get; set; }
}
public class AnalysisVerifyResultDTO
{
public List<MonthlyResult> MonthVerifyResult = new List<MonthlyResult>();
public List<RevenusVerifyDTO> RevenuesVerifyList = new List<RevenusVerifyDTO>();
}
public class MonthlyResult
{
public string YearMonth { get; set; }
public List<string> ReviewerNameList = new List<string>();
public List<string> ReviewerNameCNList = new List<string>();
public List<string> ReviewerCodeList = new List<string>();
}
public class RevenusVerifyDTO
{
public string TrialCode { get; set; }
public bool Training { get; set; } = false;
public bool Downtime { get; set; } = false;
public bool Global { get; set; } = false;
public bool Timepoint { get; set; } = false;
public bool TimepointIn24H { get; set; } = false;
public bool TimepointIn48H { get; set; } = false;
public bool Adjudication { get; set; } = false;
public bool AdjudicationIn24H { get; set; } = false;
public bool AdjudicationIn48H { get; set; } = false;
}
}
@@ -0,0 +1,37 @@
using System;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.ViewModels
{
public class TrialRevenuesPriceDTO
{
public Guid TrialId { get; set; }
public decimal Timepoint { get; set; }
public decimal TimepointIn24H { get; set; }
public decimal TimepointIn48H { get; set; }
public decimal Adjudication { get; set; }
public decimal AdjudicationIn24H { get; set; }
public decimal AdjudicationIn48H { get; set; }
public decimal RefresherTraining { get; set; }
public decimal Global { get; set; }
public decimal Training { get; set; }
public decimal Downtime { get; set; }
}
public class TrialRevenuesPriceDetialDTO : TrialRevenuesPriceDTO
{
public Guid Id { get; set; }
public string TrialCode { get; set; }
public string Indication { get; set; }
public int Expedited { get; set; }
public string ReviewMode { get; set; }
public string Cro { get; set; }
}
public class TrialRevenuesPriceQueryDTO : PageInput
{
public string KeyWord { get; set; }
public Guid? CroId { get; set; }
}
}
@@ -0,0 +1,167 @@
using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using IRaCIS.Core.Domain.Share;
namespace IRaCIS.Application.ViewModels
{
public class TrialDTO : TrialDbModel
{
public string ReviewType { get; set; }
public string Criterion { get; set; }
public string CRO { get; set; }
public string Sponsor { get; set; }
public int TrialStatus { get; set; }
public string TrialStatusStr { get; set; } = string.Empty;
public DateTime? CreateTime { get; set; }
}
public class TrialDbModel
{
public Guid Id { get; set; }
public string Code { get; set; } = string.Empty;
public string Indication { get; set; } = string.Empty;
public string Phase { get; set; } = string.Empty;
public Guid? ReviewTypeId { get; set; } = Guid.Empty;
public Guid? CriterionId { get; set; } = Guid.Empty;
public Guid? CROId { get; set; } = Guid.Empty;
public Guid? SponsorId { get; set; } = Guid.Empty;
public Guid? ReviewModeId { get; set; } = Guid.Empty;
public string Note { get; set; } = string.Empty;
public string TurnaroundTime { get; set; } = string.Empty;
public int ExpectedPatients { get; set; }
public int TimePointsPerPatient { get; set; }
public int GRRReviewers { get; set; }
public int TotalReviewers { get; set; }
public string ReviewProtocol { get; set; } = string.Empty;
public string MessageFromClient { get; set; } = string.Empty;
public string ReviewProtocolName { get; set; } = string.Empty;
public string MessageFromClientName { get; set; } = string.Empty;
public int? Expedited { get; set; }
public int AttendedReviewerType { get; set; }
public bool VisitPlanConfirmed { get; set; }
}
public class TrialDetailDTO : TrialDTO
{
public TrialDetailDTO()
{
ModalityIds = new List<Guid>();
ModalityList = new List<string>();
}
public string ReviewMode { get; set; }
public string ReviewProtocolFullPath => SystemConfig.RootUrl + ReviewProtocol;
public string MessageFromClientFullPath => SystemConfig.RootUrl + MessageFromClient;
public string SowFullPath => SystemConfig.RootUrl + SowPath;
public List<string> ModalityList { get; set; } //成像设备 多选
public List<Guid> ModalityIds { get; set; }
//统计字段
public string SowName { get; set; }
public string SowPath { get; set; }
public bool IsLocked { get; set; }
public int EnrollStatus { get; set; }
//public bool LockTrialCode { get; set; }
//public int Submitted { get; set; }
//public int Approved { get; set; }
//public int Trained { get; set; }
//public int Reading { get; set; }
public int SubjectCount { get; set; }
//public int VisitCount { get; set; }
public int StudyCount { get; set; }
public int SiteCount { get; set; }
}
public class TrialAndTrialStateVieModel
{
public TrialDetailDTO TrialView { get; set; }
public int TrialMaxState { get; set; }
}
public class TrialCommand : TrialDbModel
{
public Guid UserId { get; set; }
public List<Guid> ModalityIds { get; set; } = new List<Guid>();
}
public class TrialQueryDTO : PageInput
{
public TrialQueryDTO()
{
ModalityIds = new List<Guid>();
}
public Guid? CriterionId { get; set; } = Guid.Empty;
public Guid? SponsorId { get; set; } = Guid.Empty;
public Guid? CROId { get; set; } = Guid.Empty;
public Guid? ReviewTypeId { get; set; } = Guid.Empty;
public List<Guid> ModalityIds { get; set; }
public string Code { get; set; } = string.Empty;
public string Indication { get; set; } = string.Empty;
public string Phase { get; set; } = string.Empty;
public string TrialStatus { get; set; }
public DateTime? BeginDate { get; set; }
public DateTime? EndDate { get; set; }
public int? Expedited { get; set; }
public int? AttendedReviewerType { get; set; }
}
public class ReviewerTrialQueryDTO : PageInput
{
public string Code { get; set; } = string.Empty;
public string Indication { get; set; } = string.Empty;
public int? EnrollStatus { get; set; }
public int? Expedited { get; set; }
}
public class TrialByStatusQueryDTO : PageInput
{
public Guid DoctorId { get; set; }
public int Status { get; set; }
}
}
@@ -0,0 +1,111 @@
using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.ViewModels
{
public class TrialSiteSelect
{
public Guid Id { get; set; }
public string SiteName { get; set; }
}
public class UserTrialDTO: UserTrialCommand
{
public Guid SiteId { get; set; }
public string Phone { get; set; }
//public Guid OrganizationTypeId { get; set; }
//public string OrganizationType { get; set; }
public DateTime UpdateTime { get; set; } = DateTime.Now;
}
public class SiteCRCCommand : UserTrialCommand
{
//public Guid OrganizationTypeId { get; set; }
//public string OrganizationType { get; set; }
public Guid SiteId { get; set; } = Guid.Empty;
}
public class UserTrialCommand
{
public Guid? Id { get; set; }
public Guid UserId { get; set; }
public Guid TrialId { get; set; }
public Guid UserTypeId { get; set; }
public string UserType { get; set; }
public Guid OrganizationId { get; set; }
public string OrganizationName { get; set; }
public string OrganizationType { get; set; }
public Guid OrganizationTypeId { get; set; }
public string UserRealName { get; set; }
public string UserName { get; set; }
}
public class SiteCrcDTO : UserTrialDTO
{
//public Guid SiteId { get; set; } = Guid.Empty;
//public string Phone { get; set; }
//public Guid OrganizationTypeId { get; set; }
//public string OrganizationType { get; set; }
public string Site { get; set; }
public string City { get; set; }
public string Country { get; set; }
}
public class SiteStatDTO
{
public Guid SiteId { get; set; } = Guid.Empty;
public string Site { get; set; }
public string City { get; set; }
public string Country { get; set; }
//public int VisitCount { get; set; }
//public int PlanVisitCount { get; set; }
public int UserCount { get; set; }
public int StudyCount { get; set; }
public int SubjectCount { get; set; }
public List<UserTrialDTO> UserList=new List<UserTrialDTO>();
}
public class UserSelectionModel
{
public Guid Id { get; set; }
public string RealName { get; set; }
public string UserName { get; set; }
}
public class TrialMaintenanceQuery
{
public Guid TrialId { get; set; } = Guid.Empty;
public string UserName { get; set; } = string.Empty;
public Guid? UserTypeId { get; set; } = Guid.Empty;
}
public class UserTrialListQueryDTO : PageInput
{
public Guid TrialId { get; set; } = Guid.Empty;
public string UserName { get; set; } = string.Empty;
public Guid? UserTypeId { get; set; } = Guid.Empty;
}
public class SiteCrcQueryDTO : PageInput
{
public Guid TrialId { get; set; } = Guid.Empty;
public string UserRealName { get; set; } = string.Empty;
//public Guid? OrganizationTypeId { get; set; } = Guid.Empty;
//public Guid SiteId { get; set; } = Guid.Empty;
public string SiteName { get; set; } = string.Empty;
}
}
@@ -0,0 +1,36 @@
using System;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.ViewModels
{
public class VisitStageSelectDTO
{
public Guid Id { get; set; }
public string VisitName { get; set; }
public int VisitDay { get; set; }
}
public class VisitStageDTO: VisitPlanCommand
{
public DateTime CreateTime { get; set; }
}
public class VisitPlanCommand
{
public Guid? Id { get; set; }
public Guid TrialId { get; set; }
public decimal VisitNum { get; set; }
public string VisitName { get; set; }
public int VisitDay { get; set; }
public string Description { get; set; }
public bool NeedGlobal { get; set; }
}
public class VisitPlanQueryDTO : PageInput
{
public Guid TrialId { get; set; } = Guid.Empty;
public string Keyword { get; set; } = string.Empty;
}
}
@@ -0,0 +1,318 @@
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using System;
using System.Collections.Generic;
using System.Dynamic;
namespace IRaCIS.Application.ViewModels
{
public class SubjectVisitDTO : SubjectVisitCommand
{
public int StudyCount { get; set; }
}
public class SubjectVisitNewDTO : SubjectVisitDTO
{
public DateTime UpdateTime { get; set; }
public string SubjectCode { get; set; }
public string SubjectName { get; set; } = string.Empty;
public string SiteName { get; set; }
public string SiteCode { get; set; }
//public Guid VisitPlanId { get; set; }
}
public class SubjectVisitSearchDTO : PageInput
{
public string SubjectInfo { get; set; }
public string VisitPlanInfo { get; set; }
public Guid? SubjectId { get; set; }
public Guid TrialId { get; set; }
public Guid? SiteId { 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 Guid VisitStageId { get; set; } = Guid.Empty;
public DateTime? SVSTDTC { get; set; }
public DateTime? SVENDTC { get; set; }
//public bool IsSubjectVisit { get; set; } = false;
public bool StudyUploaded { get; set; }
public List<SubjectVisitStudyDTO> StudyList=new List<SubjectVisitStudyDTO>();
}
public class SubjectVisitCommand
{
public Guid? Id { get; set; }
public Guid TrialId { get; set; }
public Guid SubjectId { get; set; }
public Guid SiteId { get; set; }
public bool InPlan { get; set; } = true;
public bool StudyUploaded { get; set; } = false;
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 class SubjectVisitStudyDTO
{
public Guid SubjectVisitId { get; set; }
public Guid StudyId { get; set; }
public string StudyCode { get; set; }
public string Modalities { get; set; }
public int Status { get; set; }
}
public class ArchiveStudyCommand
{
public Guid? AbandonStudyId { get; set; }
public Guid TrialId { get; set; }
public Guid SiteId { get; set; }
public Guid SubjectId { get; set; }
//public Guid? VisitStageId { get; set; }
public Guid SubjectVisitId { get; set; }
public DateTime? SVSTDTC { get; set; }
public DateTime? SVENDTC { get; set; }
public string Comment { get; set; } = string.Empty;
}
public class StudyCommand
{
public Guid Id { get; set; } = Guid.Empty;
public Guid TrialId { get; set; }
public Guid SiteId { 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; }
}
public class StudyStatDTO
{
public int StudyCount { get; set; }
public decimal VisitNum { get; set; }
public string VisitName { get; set; }
public int VisitDay { get; set; }
public string Description { get; set; }
public Guid TrialId { get; set; }
public Guid SubjectVisitId { get; set; }
}
public class DistributeReviewerStudyStatusDTO
{
public string NameCN { get; set; }
public string Name { get; set; }
public string ReviewerCode { get; set; }
public string StudyCode { get; set; }
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 StudyDTO
//{
// public SubjectVisitInfo SubjectVisit { get; set; }=new SubjectVisitInfo();
// public StudyInfo Study { get; set; }=new StudyInfo();
// public SiteInfo Site { get; set; }=new SiteInfo();
// public QAInfo QA { get; set; }=new QAInfo();
// public class SubjectVisitInfo
// {
// public Guid SubjectVisitId { get; set; }
// public double VisitNum { get; set; }
// public string VisitName { get; set; }
// }
// public class StudyInfo
// {
// public Guid Id { get; set; }
// public Guid TrialId { get; set; }
// public string StudyCode { get; set; }
// public int StudyStatus { get; set; }
// public DateTime? StudyDate { get; set; }
// public string Modalities { get; set; }
// public int SeriesCount { get; set; }
// public int InstanceCount { get; set; }
// }
// public class SiteInfo
// {
// public Guid SiteId { get; set; }
// public string SiteName { get; set; }
// }
// public class QAInfo
// {
// public Guid SubjectId { get; set; }
// public string SubjectCode { get; set; }
// public string SubjectName { get; set; }
// public int SubjectAge { get; set; }
// public string SubjectSex { get; set; }
// public string PatientName { get; set; }
// public string PatientAge { get; set; }
// public string PatientSex { get; set; }
// }
//}
public class VerifyStudyUploadResult
{
public bool AllowUpload { get; set; }
public StudyDTO StudyInfo { get; set; }
}
public class StudyDTO
{
public Guid SubjectVisitId { get; set; }
public decimal VisitNum { get; set; }
public string VisitName { get; set; }
public int VisitDay { get; set; }
public string SVUPDES { get; set; }
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; }
public int StudyStatus { get; set; }
public DateTime? StudyDate { get; set; }
public string Modalities { get; set; }
public int SeriesCount { get; set; }
public int InstanceCount { get; set; }
public bool IsDoubleReview { get; set; }
public string StudyDescription { get; set; }
public string BodyPartExamined { get; set; }
public string Comment { get; set; }
public DateTime UpdateTime { get; set; }
//public List<DistributeReviewer> DistributeReviewers { get; set; }=new List<DistributeReviewer>();
public Guid SiteId { get; set; }
public string SiteName { get; set; }
public string StudyId { get; set; } //这个Id是dicom文件中的Id
public Guid SubjectId { get; set; }
public string SubjectCode { get; set; }
public string SubjectName { get; set; }
public int SubjectAge { get; set; }
public string SubjectSex { get; set; }
public string PatientId { get; set; }
public string PatientName { get; set; }
public string PatientAge { get; set; }
public string PatientSex { get; set; }
public string AccessionNumber { get; set; } = string.Empty;
public string PatientBirthDate { get; set; } = string.Empty;
}
public class DistributeReviewer
{
public Guid StudyId { get; set; }
public Guid ReviewerId { get; set; }
public string NameCN { get; set; }
public string Name { get; set; }
public int Status { get; set; }
}
public class StudyQueryDTO : PageInput
{
public Guid? SubjectId { get; set; }
public Guid? SiteId { get; set; }
public Guid TrialId { get; set; }
public string SubjectInfo { get; set; }
public string VisitPlanInfo { get; set; }
public Guid? SubjectVisitId { get; set; }
public int? Status { get; set; }
public DateTime? StudyTimeBegin { get; set; }
public DateTime? StudyTimeEnd { get; set; }
public DateTime? UpdateTimeBegin { get; set; }
public DateTime?UpdateTimeEnd { get; set; }
}
}
@@ -0,0 +1,21 @@
using System;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.Interfaces
{
public interface ITrialEnrollmentService
{
/// <summary>入组流程-筛选医生 [select]</summary>
IResponseOutput SelectReviewer(Guid userId, Guid trialId, Guid[] doctorIdArray);
/// <summary>入组流程-向CRO提交医生[Submit]</summary>
IResponseOutput SubmitReviewer(Guid userId, Guid trialId, Guid[] doctorIdArray, int commitState);
/// <summary>入组流程-CRO确定医生名单 [ Approve]</summary>
IResponseOutput ApproveReviewer(Guid userId, Guid trialId, Guid[] doctorIdArray, int auditState);
/// <summary>入组流程-向CRO提交医生[Submit]</summary>
IResponseOutput ConfirmReviewer(Guid userId, Guid trialId, Guid[] doctorIdArray, int confirmState);
}
}
@@ -0,0 +1,63 @@
using IRaCIS.Application.ViewModels;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.Dicom.DTO;
using System.Threading.Tasks;
namespace IRaCIS.Application.Interfaces
{
public interface IStudyService
{
/// <summary> 根据项目Id,医生Id,获取受试者访视点(不分页)</summary>
IEnumerable<StudyStatDTO> GetStudyStatList(Guid trialId, Guid subjectId, Guid siteId);
bool UpdateReUploadNewStudyCode(Guid studyId,Guid newStudyId);
VerifyStudyUploadResult VerifyStudyAllowUpload(string studyInstanceUid, Guid trialId, Guid? studyId);
PageOutput<StudyDTO> GetStudyList(StudyQueryDTO queryDto);
/// <summary> 添加或更新访视点</summary>
Task<IResponseOutput> UpdateStudyBinding(StudyEditCommand param);
/// <summary> 删除项目访视计划</summary>
IResponseOutput DeleteStudy(Guid id);
DicomTrialSiteSubjectInfo GetSaveToDicomInfo(StudyCommand dicomAddtionalCommand);
Guid AddSubjectVisit(Guid subjectId,Guid siteId, Guid visitStageId, DateTime? SVSTDTC, DateTime? SVENDTC);
void UpdateSubjectLatestInfo(Guid subjectId, Guid trialId);
bool UpdateSubjectVisit(Guid subjectVisitId, DateTime? SVSTDTC, DateTime? SVENDTC);
bool DistributeStudy(StudyReviewerCommand studyReviewer);
IResponseOutput EditStudyReviewer(StudyReviewerEditCommand studyReviewerEditCommand);
List<ReviewerDistributionDTO> GetReviewerListByTrialId(Guid trialId);
/// <summary>
/// 更新Study 表中的Status,并且往 StudyStatusDetail详情表中插入一条状态变化记录
/// </summary>
/// <param name="studyStatusDetailDTO"></param>
bool UpdateStudyStatus(StudyStatusDetailCommand studyStatusDetailDTO, string optUserName);
bool UpdateStudyModaliyAndComment(Guid studyId,string modaliy,string comment);
bool UpdateStudyStatus(List<StudyStatusDetailCommand> studyStatus, string optUserName);
List<StudyStatusDetailDTO> GetStudyStatusDetailList(Guid studyId);
PageOutput<DistributeReviewerStudyStatusDTO> GetDistributeStudyList(StudyStatusQueryDTO studyStatusQueryDto);
IEnumerable<RelationVisitDTO> GetRelationVisitList(decimal visitNum, string tpCode);
List<SubjectVisitStudyDTO> GetSubjectVisitStudyList(Guid trialId, Guid siteId, Guid subjectId, Guid subjectVisitId);
Task<bool> DicomAnonymize(Guid studyId,string optuserName);
}
}
@@ -0,0 +1,25 @@
using IRaCIS.Application.ViewModels;
using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.Interfaces
{
public interface ITrialAttachmentService
{
IResponseOutput AddOrUpdateSpecification(TrialAttachmentCommand model,Guid userId);
IResponseOutput DeleteSpecification(Guid Id);
IEnumerable<AcquisitionSpecificationDTO> GetSpecificationList(
Guid trialId,string type);
///// <summary>
///// 获取采集规范列表
///// </summary>
///// <param name="param"></param>
///// <returns></returns>
//PageOutput<AcquisitionSpecificationDTO> GetSpecificationList(ImageAcquisitionSpecificationQueryDTO param);
}
}
@@ -0,0 +1,16 @@
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.Trial.DTO;
namespace IRaCIS.Application.Interfaces
{
public interface ITrialRevenuesPriceVerificationService
{
//List<RevenusVerifyDTO> GetRevenuesVerifyResultList(RevenusVerifyQueryDTO param);
AnalysisVerifyResultDTO GetAnalysisVerifyList(RevenusVerifyQueryDTO param);
List<RevenusVerifyDTO> GetTrialRevenuesVerifyResultList(RevenusVerifyQueryDTO param);
}
}
@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using IRaCIS.Application.ViewModels;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.Interfaces
{
public interface ITrialService
{
bool TrialExpeditedChange { get; set; }
//查询
TrialDetailDTO GetTrialInfoAndLockState(Guid projectId);
int GetTrialExpeditedState(Guid trialId);//获取项目加急状态
int GetTrialMaxState(Guid trialId);
IResponseOutput ConfirmTrialVisitPlan(Guid trialId);
//添加项目基本信息
IResponseOutput AddOrUpdateTrial(TrialCommand addTrialModel, Guid userId);
//手动变更项目状态
IResponseOutput UpdateTrialStatus(Guid trialId, string statusStr);
//删除
IResponseOutput DeleteTrial(Guid trialId);
//获取分页项目 列表 多条件查询
PageOutput<TrialDetailDTO> GetTrialList(TrialQueryDTO searchModel, Guid userId);
List<Guid> GetTrialEnrollmentReviewerIds(Guid trialId);
PageOutput<TrialDetailDTO> GetReviewerTrialListByEnrollmentStatus(
TrialByStatusQueryDTO param);
PageOutput<TrialDetailDTO> GetTrialListByReviewer(ReviewerTrialQueryDTO searchModel, Guid userId);
IResponseOutput UpdateEnrollStatus(Guid trialId, int status);
}
}
@@ -0,0 +1,40 @@
using IRaCIS.Application.ViewModels;
using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.Interfaces
{
public interface IUserTrialService
{
IEnumerable<TrialSiteSelect> GetTrialSiteSelect(Guid trialId);
/// <summary>获取项目的维护人员列表 </summary>
PageOutput<UserTrialDTO> GetUserTrialList(UserTrialListQueryDTO param);
IEnumerable<UserTrialDTO> GetMaintenanceUserList(TrialMaintenanceQuery param);
/// <summary> 获取可供选择的运维人员列表</summary>
IEnumerable<UserSelectionModel> GetUserSelectionList(Guid userTypeId,Guid institutionId);
/// <summary> 添加或更新运维人员</summary>
IResponseOutput AddOrUpdateUserTrial(UserTrialCommand param);
/// <summary> 删除运维人员</summary>
IResponseOutput DeleteUserTrial(Guid param);
/// <summary>获取负责研究中心CRC列表</summary>
PageOutput<SiteStatDTO> GetSiteCRCList(SiteCrcQueryDTO param);
/// <summary> 添加或更新CRC人员</summary>
IResponseOutput AddOrUpdateSiteCRC(SiteCRCCommand param);
/// <summary> 删除CRC人员</summary>
IResponseOutput DeleteSiteCRC(Guid id);
}
}
@@ -0,0 +1,27 @@
using IRaCIS.Application.ViewModels;
using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.Interfaces
{
public interface IVisitPlanService
{
/// <summary> 分页获取项目访视计划</summary>
PageOutput<VisitStageDTO> GetTrialVisitStageList(VisitPlanQueryDTO param);
IEnumerable<VisitStageSelectDTO> GetTrialVisitStageSelect(Guid trialId);
/// <summary> 根据项目Id,获取项目访视计划(不分页)</summary>
IEnumerable<VisitStageDTO> GetVisitStageList(Guid trialId);
/// <summary> 添加或更新运维人员</summary>
IResponseOutput AddOrUpdateVisitStage(VisitPlanCommand param);
/// <summary> 删除项目访视计划</summary>
IResponseOutput DeleteVisitStage(Guid id);
}
}
@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
namespace IRaCIS.Application.ViewModels
{
public class ImageQACommand
{
public Guid TrialId { get; set; }
public Guid SiteId { get; set; }
public Guid StudyId { get; set; }
public Guid? ParentId { get; set; }
public String CommunicationRecord { get; set; }
}
public class ImageQaDTO: ImageQACommand
{
public Guid Id { get; set; }
public string UserName { get; set; }
}
public class StudyQAView
{
List<ImageQaDTO> ImageQAList =new List<ImageQaDTO>();
List<Guid> DictionayIds=new List<Guid>();
//List<string> Qa
}
}
@@ -0,0 +1,39 @@
using System;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.ViewModels
{
public class ImageCommand
{
public Guid Id { get; set; }
public Guid TrialId { get; set; }
public Guid SubjectId { get; set; } = Guid.Empty;
public Guid SiteId { get; set; } = Guid.Empty;
public Guid SubjectVisitId { get; set; } = Guid.Empty;
public string TrialCode { get; set; }
}
public class ImageDetailDTO : ImageCommand
{
public int? State { get; set; }
public DateTime StudyDate { get; set; } = DateTime.Now;
public string Modalities { get; set; } = string.Empty;
public Guid StudyId { get; set; } = Guid.Empty;
public string ImageNo { get; set; } = string.Empty;
public string SubjectCode { get; set; }//受试者编号
public string SiteName { get; set; }
public string MedicalNo { get; set; }
public string Period { get; set; }
public DateTime CreateTime { get; set; }
}
public class ImageQueryDTO : PageInput
{
public Guid TrialId { get; set; } = Guid.Empty;
public string SubjectCode { get; set; } = string.Empty;
public Guid SubjectVisitId { get; set; } = Guid.Empty;
public int State { get; set; } = 0;
}
}
@@ -0,0 +1,12 @@
using IRaCIS.Application.ViewModels;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.Interfaces
{
public interface IImageQAService
{
IResponseOutput AddOrUpdateImageQA(ImageQACommand qaCommand);
}
}
@@ -0,0 +1,14 @@
using IRaCIS.Application.ViewModels;
using System;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.Interfaces
{
public interface IImageService
{
IResponseOutput AddImage(ImageCommand model,Guid userId);
IResponseOutput DeleteImage(Guid id);
//PageOutput<ImageDetailDTO> GetImageList(ImageQueryDTO param);
}
}
@@ -0,0 +1,143 @@
using IRaCIS.Application.ViewModels;
using IRaCIS.Core.Application.Contracts.Dicom.DTO;
using IRaCIS.Core.Domain.Models;
using System;
using System.Collections.Generic;
namespace IRaCIS.Core.Application.Contracts.DTO
{
public class QARecordCommand
{
public Guid? Id { get; set; }
public Guid QATemplateId { get; set; }
public Guid StudyId { get; set; }
public string Note { get; set; }
public DateTime? DeadlineTime { get; set; }
}
public class QARecordWithUser: QARecordCommand
{
public string UserName { get; set; }
public DateTime CreateTime { get; set; }
public int ReplyCount { get; set; }
}
public class QADictionaryCommand
{
public string Note { get; set; }
public Guid DictionaryId { get; set; }
}
public class QADictionaryDTO : QADictionaryCommand
{
public string DictionaryValue { get; set; }
}
public class QADicView
{
public Guid QARecordId { get; set; }
public string DictionaryValue { get; set; }
public string Note { get; set; }
public Guid DictionaryId { get; set; }
}
public class QAToalCommand
{
public Guid StudyId { get; set; }
public Guid TrialId { get; set; }
public Guid SiteId { get; set; }
public QARecordCommand QARecord { get; set; }
public List<QADictionaryCommand> QADictionaryList { get; set; } = new List<QADictionaryCommand>();
}
public class QADTO
{
public List<QARecordDTO> QARecordList { get; set; } = new List<QARecordDTO>();
public StudySubjectInfoDTO StudySubjectInfo { get; set; }
public AcquisitionSpecificationDTO Specification { get; set; }
}
public class QARecordDTO
{
public QARecordWithUser QARecord { get; set; }
public List<QADicView> QADictionaryList { get; set; } = new List<QADicView>();
}
public class StudySubjectInfoDTO
{
public int StudyStatus { get; set; }
public string SubjectCode { get; set; }
public string SubjectName { get; set; }
public int SubjectAge { get; set; }
public string SubjectSex { get; set; }
public string PatientName { get; set; } = string.Empty;
public string PatientAge { get; set; } = string.Empty;
public string PatientSex { get; set; } = string.Empty;
public string Modalities { get; set; }
public int SeriesCount { get; set; }
public int InstanceCount { get; set; }
public string Comment { get; set; }
public string QAComment { get; set; }
public bool Anonymize { 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 class QADialogCommand
{
public string TalkContent { get; set; }
public Guid QARecordId { get; set; }
public Guid? ParentId { get; set; }
}
public class DialogDTO
{
public Guid Id { get; set; }
public string TalkContent { get; set; }
//public Guid QARecordId { get; set; }
public string From { get; set; }
public string To { get; set; }
public Guid UserId { get; set; }
public string PreviousContent { 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; }
public string TalkContent { get; set; }
public Guid QARecordId { get; set; }
public DateTime CreateTime { get; set; }
}
}
@@ -0,0 +1,44 @@
using System;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Core.Application.Contracts.DTO
{
public class QATemplateCommand
{
public Guid? Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
public class QATemplateDTO: QATemplateCommand
{
}
public class QATemplateQueryDTO : PageInput
{
public string Name { get; set; }
}
public class QATemplateItemSelect: QATemplateItemDTO
{
public bool IsSelect { get; set; }
}
public class QATemplateItemDTO
{
public string DictionaryValue { get; set; }
public Guid DictionaryId { get; set; }
}
public class QATemplateConfigCommand
{
public Guid DictionaryId { get; set; }
public Guid QATemplateId { get; set; }
public bool IsSelect { get; set; }
}
}
@@ -0,0 +1,8 @@
namespace IRaCIS.Core.Application.Contracts
{
public interface IQADictionaryService
{
}
}
@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.DTO;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Core.Application.Contracts
{
public interface IQARecordService
{
IResponseOutput AddOrUpdateQARecord(QAToalCommand qaTotalCommand);
IResponseOutput DeleteQARecord(Guid qaQARecordId);
QADTO GetQARecordList(Guid studyId,Guid trialId);
IResponseOutput AddQAReply(QADialogCommand qaDialogCommand);
IResponseOutput DeleteQAReply(Guid qaReplyId);
List<DialogDTO> GetQaRecordDialogList(Guid qaRecordId);
}
}
@@ -0,0 +1,9 @@
namespace IRaCIS.Core.Application.Contracts
{
public interface IQATemplateDictionaryService
{
}
}
@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.DTO;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Core.Application.Contracts
{
public interface IQATemplateService
{
IResponseOutput AddOrUpdateQATemplate(QATemplateCommand qaTemplateCommand);
IResponseOutput DeleteQATemplate(Guid qaTemplateId);
PageOutput<QATemplateDTO> GetQaTemplateList(QATemplateQueryDTO qaTemplateQuery);
List<QATemplateItemDTO> GetQaTemplateItemsById(Guid qaTemplateId);
List<QATemplateDTO> GetQaTemplateSelectList();
List<QATemplateItemSelect> GetQaTemplateConfigList(Guid qaTemplateId);
IResponseOutput ConfigQATemplate(QATemplateConfigCommand qaTemplateConfigCommand);
}
}
@@ -0,0 +1,17 @@
using IRaCIS.Application.ViewModels;
using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.Interfaces
{
public interface ISubjectService
{
IResponseOutput AddOrUpdateSubject(SubjectCommand model);
IResponseOutput DeleteSubject(Guid id);
PageOutput<SubjectQueryModel> GetSubjectList(SubjectQueryParam param);
List<SubjectSelect> GetSubjectListBySiteId(Guid siteId, Guid trialId);
}
}
@@ -0,0 +1,25 @@
using IRaCIS.Application.ViewModels;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using System;
using System.Collections.Generic;
namespace IRaCIS.Core.Application.Contracts.Trial
{
public interface ISubjectVisitService
{
PageOutput<SubjectVisitNewDTO> GetVisitList(SubjectVisitSearchDTO subjectVisitSearch);
IEnumerable<SubjectVisitDTO> GetSubjectVisitList(Guid trialId, Guid subjectId);
List<SubjectVisitSelectDTO> GetSubjectVisitSelectList(Guid trialId, Guid siteId, Guid subjectId);
IResponseOutput AddOrUpdateSV(SubjectVisitCommand svCommand);
IResponseOutput DeleteSV(Guid id);
}
}
@@ -0,0 +1,39 @@
using IRaCIS.Application.ViewModels;
using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Application.Interfaces
{
public interface ITrialWorkloadService
{
/// <summary>
/// 上传入组后的Ack-SOW
/// </summary>
IResponseOutput UploadReviewerAckSOW(Guid userId, Guid trialId, ReviewerAckDTO attachmentViewModel);
/// <summary>
/// 删除Ack-SOW
/// </summary>
IResponseOutput DeleteReviewerAckSOW(Guid trialId, Guid doctorId, Guid attachmentId);
IResponseOutput UpdateReviewerReadingType(Guid trialId, Guid doctorId, int type);
/// <summary>
/// 获取某个项目入组的医生工作量统计列表
/// </summary>
PageOutput<WorkLoadAndAgreementDTO> GetTrialEnrollmentWorkloadStats(WorkLoadDoctorQueryDTO doctorSearchModel);
PageOutput<WorkLoadDetailDTO> GetEnrollmentWorkloadStatsDetail(
WorkLoadStatsQueryDTO workLoadSearch);
List<WorkLoadDetailViewModel> GetReviewerWorkLoadListDetail(
WorkLoadDetailQueryDTO workLoadSearch);
/// <summary> 判断医生是否存在当天的工作量数据 </summary>
IResponseOutput<ExistWorkloadViewModel> WorkloadExist(WorkloadExistQueryDTO param);
IResponseOutput AddOrUpdateWorkload(WorkloadCommand workLoadAddOrUpdateModel, Guid userId);
IResponseOutput DeleteWorkload(Guid id);
WorkloadDTO GetWorkloadDetailById(Guid id);
}
}
@@ -0,0 +1,145 @@
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using System;
using System.Collections.Generic;
namespace IRaCIS.Application.ViewModels
{
#region TP
public class WorkloadTPDTO
{
public Guid Id { get; set; }
public Guid SiteId { get; set; }
public string SiteName { get; set; }
public Guid SubjectId { get; set; }
public string SubjectCode { get; set; }
public Guid SubjectVisitId { get; set; }
public string VisitName { get; set; }
public decimal VisitNum { get; set; }
public Guid StudyId { get; set; }
public string StudyCode { get; set; }
public string TimepointCode { get; set; }
public Guid ReviewerId { get; set; }
public string ReviewerCode { get; set; }
public string ReviewerFirstName { get; set; }
public string ReviewerLastName { get; set; }
public string ReviewerChineseName { get; set; }
public int Status { get; set; }
public DateTime UpdateTime { get; set; }
}
#endregion
#region Global
public class WorkloadGlobalDTO
{
public Guid Id { get; set; }
public Guid SiteId { get; set; }
public string SiteName { get; set; }
public Guid VisitId { get; set; }
public string VisitName { get; set; }
public Guid TrialId { get; set; }
public Guid SubjectId { get; set; }
public string SubjectCode { get; set; }
public decimal VisitNum { get; set; }
public string GlobalCode { get; set; }
public Guid ReviewerId { get; set; }
public string ReviewerCode { get; set; }
public string ReviewerFirstName { get; set; }
public string ReviewerLastName { get; set; }
public string ReviewerChineseName { get; set; }
public int Status { get; set; }
public DateTime UpdateTime { get; set; }
}
#endregion
#region AD
public class WorkloadADDTO
{
public Guid Id { get; set; }
public Guid TrialId { get; set; }
public Guid SiteId { get; set; }
public string SiteName { get; set; }
public Guid SubjectId { get; set; }
public string SubjectCode { get; set; }
public string ADCode { get; set; }
public Guid ReviewerId { get; set; }
public string ReviewerCode { get; set; }
public string ReviewerFirstName { get; set; }
public string ReviewerLastName { get; set; }
public string ReviewerChineseName { get; set; }
public int Status { get; set; }
public DateTime UpdateTime { get; set; }
public Guid Global1Id { get; set; }
public Guid Global2Id { get; set; }
}
#endregion
public class WorkloadDistributionQueryParam : PageInput
{
public Guid TrialId { get; set; } = Guid.Empty;
public Guid? SiteId { get; set; } = Guid.Empty;
public string SubjectCode { get; set; } = string.Empty;
public string WorkloadCode { get; set; } = string.Empty;
public string Reviewer { get; set; } = string.Empty;
public int? Status { get; set; }
public int? GroupId { get; set; } = 0;
}
public class WorkloadTPInfo
{
public Guid Id { get; set; }
public Guid StudyId { get; set; }
}
public class WorkloadTPCommand
{
public List<WorkloadTPInfo> TpList { get; set; } = new List<WorkloadTPInfo>();
public Guid ReviewerId { get; set; }
public string ReviewerName { get; set; }
}
public class WorkloadGlobalInfo
{
public Guid Id { get; set; }
public Guid SubjectId { get; set; }
public decimal VisitNum { get; set; }
}
public class WorkloadGlobalCommand
{
public List<WorkloadGlobalInfo> GlobalList { get; set; } = new List<WorkloadGlobalInfo>();
public Guid ReviewerId { get; set; }
public string ReviewerName { get; set; }
}
public class WorkloadAdCommand
{
public List<Guid> IdList { get; set; } = new List<Guid>();
public Guid ReviewerId { get; set; }
public string ReviewerName { get; set; }
}
//public class WorkloadDistributionUpdateCommand
//{
// public Guid Id { get; set; }
// public Guid? ReviewerId { get; set; }
//}
public class WorkloadDetailDTO
{
public Guid Id { get; set; }
public Guid WorkloadId { get; set; }
public string OptUserName { get; set; }
public DateTime OptTime { get; set; }
public string ReviewerFirstName { get; set; }
public string ReviewerLastName { get; set; }
public string ReviewerChineseName { get; set; }
public int Status { get; set; }
}
//public class WorkloadDetailQueryParam
//{
// public int WorkloadType { get; set; } //1-tp,2-global,3-ad
// public Guid WorkloadId { get; set; }
//}
}
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using IRaCIS.Application.ViewModels;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
namespace IRaCIS.Core.Application.Contracts
{
public interface IWorkloadDistributionService
{
PageOutput<WorkloadTPDTO> GetWorkloadTPList(WorkloadDistributionQueryParam param);
IResponseOutput DistributeTP(WorkloadTPCommand workloadTPCommand);
IResponseOutput UpdateDistributeTP(Guid tpId, Guid ReviewerId, Guid studyId);
PageOutput<WorkloadGlobalDTO> GetWorkloadGlobalList(WorkloadDistributionQueryParam param);
IResponseOutput DistributeGlobal(WorkloadGlobalCommand workloadGlobalCommand);
IResponseOutput UpdateDistributeGlobal(Guid tpId, Guid ReviewerId,Guid subjectId, decimal visitNum);
PageOutput<WorkloadADDTO> GetWorkloadADList(WorkloadDistributionQueryParam param);
bool DistributeAD(WorkloadAdCommand workloadTPCommand);
bool UpdateDistributeAD(Guid tpId, Guid ReviewerId);
IResponseOutput<List<WorkloadDetailDTO>> GetWorkloadDetail(Guid WorkloadId);
IResponseOutput UpdateGlobalStatus(Guid globalId);
}
}