清理后端下载
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
97b28fd920
commit
b90f5f2d85
|
@ -1492,16 +1492,6 @@
|
||||||
<param name="inQuery"></param>
|
<param name="inQuery"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.DownloadAndUploadService.RequestPackageAndAnonymizImage(System.Guid,System.Guid,System.Boolean,System.Boolean)">
|
|
||||||
<summary>
|
|
||||||
打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
|
|
||||||
</summary>
|
|
||||||
<param name="trialId"></param>
|
|
||||||
<param name="subjectVisitId"></param>
|
|
||||||
<param name="isDicom"></param>
|
|
||||||
<param name="isAnonymize"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.DownloadAndUploadService.GetSubejectOrVisitZipInfo(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Application.Contracts.SubejctZipInfoQuery)">
|
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.DownloadAndUploadService.GetSubejectOrVisitZipInfo(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Application.Contracts.SubejctZipInfoQuery)">
|
||||||
<summary>
|
<summary>
|
||||||
受试者级别所有的影像
|
受试者级别所有的影像
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
public string CriterionModalitys { get; set; }
|
public string CriterionModalitys { get; set; }
|
||||||
|
|
||||||
public Guid? SourceSubjectVisitId { get; set; }
|
public Guid? SourceSubjectVisitId { get; set; }
|
||||||
public PackState PackState { get; set; }
|
|
||||||
|
|
||||||
public List<StudyBasicInfo> OrginalStudyList { get; set; }
|
public List<StudyBasicInfo> OrginalStudyList { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,6 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
TaskName = u.TaskName,
|
TaskName = u.TaskName,
|
||||||
|
|
||||||
SourceSubjectVisitId = u.SourceSubjectVisitId,
|
SourceSubjectVisitId = u.SourceSubjectVisitId,
|
||||||
PackState = u.SourceSubjectVisit.PackState,
|
|
||||||
|
|
||||||
OrginalStudyList = u.SourceSubjectVisit.StudyList
|
OrginalStudyList = u.SourceSubjectVisit.StudyList
|
||||||
.Where(t => u.TrialReadingCriterion.IsImageFilter ? ("|" + u.TrialReadingCriterion.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true)
|
.Where(t => u.TrialReadingCriterion.IsImageFilter ? ("|" + u.TrialReadingCriterion.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true)
|
||||||
|
@ -1011,59 +1010,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
|
|
||||||
#region 之前后端下载废弃
|
#region 之前后端下载废弃
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="trialId"></param>
|
|
||||||
/// <param name="subjectVisitId"></param>
|
|
||||||
/// <param name="isDicom"></param>
|
|
||||||
/// <param name="isAnonymize"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
|
|
||||||
[Obsolete]
|
|
||||||
public async Task<IResponseOutput> RequestPackageAndAnonymizImage(Guid trialId, Guid subjectVisitId, bool isDicom, bool isAnonymize = true)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
var extralConfig = _trialRepository.Where(t => t.Id == trialId).Select(t => t.TrialExtraConfigJsonStr).FirstOrDefault() ?? string.Empty;
|
|
||||||
|
|
||||||
var config = JsonConvert.DeserializeObject<TrialExtraConfig>(extralConfig) ?? new TrialExtraConfig();
|
|
||||||
|
|
||||||
if (config.IsSupportQCDownloadImage == false)
|
|
||||||
{
|
|
||||||
throw new BusinessValidationFailedException("该项目不支持QC下载影像");
|
|
||||||
}
|
|
||||||
|
|
||||||
var subjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
|
|
||||||
|
|
||||||
var sujectCode = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => t.Subject.Code).FirstOrDefaultAsync();
|
|
||||||
|
|
||||||
var packState = isDicom ? subjectVisit.PackState : subjectVisit.NoDicomPackState;
|
|
||||||
|
|
||||||
if (packState == PackState.WaitPack)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (isDicom)
|
|
||||||
{
|
|
||||||
subjectVisit.PackState = PackState.Packing;
|
|
||||||
HangfireJobHelper.NotImmediatelyOnceOnlyJob<IDownloadAndUploadService>(t => t.PackageAndAnonymizImage(trialId, subjectVisitId, true, isAnonymize), TimeSpan.FromSeconds(1));
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
subjectVisit.NoDicomPackState = PackState.Packing;
|
|
||||||
|
|
||||||
HangfireJobHelper.NotImmediatelyOnceOnlyJob<IDownloadAndUploadService>(t => t.PackageAndAnonymizImage(trialId, subjectVisitId, false, isAnonymize), TimeSpan.FromSeconds(1));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
await _subjectVisitRepository.SaveChangesAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
return ResponseOutput.Ok(isDicom ? subjectVisit.VisitImageZipPath : subjectVisit.VisitNoDicomImageZipPath,
|
|
||||||
new { FileName = $"{sujectCode}_{subjectVisit.VisitName}_ImageStudy_{(isDicom ? "Dicom" : "NoneDicom")}.zip" });
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1371,7 +1318,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
//上传到Oss
|
//上传到Oss
|
||||||
var relativeDicomPath = await _oSSService.UploadToOSSAsync(zipDicomPath, $"download_zip", false);
|
var relativeDicomPath = await _oSSService.UploadToOSSAsync(zipDicomPath, $"download_zip", false);
|
||||||
|
|
||||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.Packed, VisitImageZipPath = relativeDicomPath });
|
//await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.Packed, VisitImageZipPath = relativeDicomPath });
|
||||||
|
|
||||||
|
|
||||||
File.Delete(zipDicomPath);
|
File.Delete(zipDicomPath);
|
||||||
|
@ -1410,7 +1357,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
File.Delete(zipNoneDicomPath);
|
File.Delete(zipNoneDicomPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.Packed, VisitNoDicomImageZipPath = relativeNoneDicomPath });
|
//await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.Packed, VisitNoDicomImageZipPath = relativeNoneDicomPath });
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1422,7 +1369,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.WaitPack });
|
//await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.WaitPack });
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
{
|
{
|
||||||
public string YearMonth { get; set; } = string.Empty;
|
public string YearMonth { get; set; } = string.Empty;
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Rate { get; set; }
|
public decimal Rate { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,20 +9,20 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
public bool IsLock { get; set; }
|
public bool IsLock { get; set; }
|
||||||
public DateTime YearMonthDate { get; set; }
|
public DateTime YearMonthDate { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal PaymentUSD { get; set; }
|
public decimal PaymentUSD { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,4)")]
|
[DecimalPrecision(18, 4)]
|
||||||
public decimal PaymentCNY { get; set; }
|
public decimal PaymentCNY { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal ExchangeRate { get; set; }
|
public decimal ExchangeRate { get; set; }
|
||||||
|
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,4)")]
|
[DecimalPrecision(18, 4)]
|
||||||
public decimal AdjustmentCNY { get; set; }
|
public decimal AdjustmentCNY { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal AdjustmentUSD { get; set; }
|
public decimal AdjustmentUSD { get; set; }
|
||||||
public DateTime CalculateTime { get; set; } = DateTime.Now;
|
public DateTime CalculateTime { get; set; } = DateTime.Now;
|
||||||
|
|
||||||
|
|
|
@ -8,16 +8,16 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
public DateTime YearMonthDate { get; set; }
|
public DateTime YearMonthDate { get; set; }
|
||||||
public string YearMonth { get; set; } = string.Empty;
|
public string YearMonth { get; set; } = string.Empty;
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal AdjustmentUSD { get; set; }
|
public decimal AdjustmentUSD { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,4)")]
|
[DecimalPrecision(18, 4)]
|
||||||
public decimal AdjustmentCNY { get; set; }
|
public decimal AdjustmentCNY { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public Guid TrialId { get; set; } = Guid.Empty;
|
public Guid TrialId { get; set; } = Guid.Empty;
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal ExchangeRate { get; set; }
|
public decimal ExchangeRate { get; set; }
|
||||||
public bool IsLock { get; set; } = false;
|
public bool IsLock { get; set; } = false;
|
||||||
public string Note { get; set; } = string.Empty;
|
public string Note { get; set; } = string.Empty;
|
||||||
|
|
|
@ -15,22 +15,22 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
public string PaymentType { get; set; } = string.Empty;
|
public string PaymentType { get; set; } = string.Empty;
|
||||||
public int Count { get; set; }
|
public int Count { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal BasePrice { get; set; }
|
public decimal BasePrice { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal PersonalAdditional { get; set; }
|
public decimal PersonalAdditional { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal TrialAdditional { get; set; }
|
public decimal TrialAdditional { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal ExchangeRate { get; set; }
|
public decimal ExchangeRate { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal PaymentUSD { get; set; }
|
public decimal PaymentUSD { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,4)")]
|
[DecimalPrecision(18, 4)]
|
||||||
public decimal PaymentCNY { get; set; }
|
public decimal PaymentCNY { get; set; }
|
||||||
|
|
||||||
public int ShowTypeOrder { get; set; }
|
public int ShowTypeOrder { get; set; }
|
||||||
|
|
|
@ -6,34 +6,34 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
[StringLength(200)]
|
[StringLength(200)]
|
||||||
public string RankName { get; set; } = string.Empty;
|
public string RankName { get; set; } = string.Empty;
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Timepoint { get; set; }
|
public decimal Timepoint { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal TimepointIn24H { get; set; }
|
public decimal TimepointIn24H { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal TimepointIn48H { get; set; }
|
public decimal TimepointIn48H { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Adjudication { get; set; }
|
public decimal Adjudication { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal AdjudicationIn24H { get; set; }
|
public decimal AdjudicationIn24H { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal AdjudicationIn48H { get; set; }
|
public decimal AdjudicationIn48H { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Global { get; set; }
|
public decimal Global { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Training { get; set; }
|
public decimal Training { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Downtime { get; set; }
|
public decimal Downtime { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal RefresherTraining { get; set; }
|
public decimal RefresherTraining { get; set; }
|
||||||
public int ShowOrder { get; set; }
|
public int ShowOrder { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,13 +7,13 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
|
|
||||||
public Trial Trial { get; set; }
|
public Trial Trial { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal TrialAdditional { get; set; } = 0;
|
public decimal TrialAdditional { get; set; } = 0;
|
||||||
|
|
||||||
public string SowName { get; set; } = string.Empty;
|
public string SowName { get; set; } = string.Empty;
|
||||||
public string SowPath { get; set; } = string.Empty;
|
public string SowPath { get; set; } = string.Empty;
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal AdjustmentMultiple { get; set; } = 1;
|
public decimal AdjustmentMultiple { get; set; } = 1;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -5,34 +5,34 @@
|
||||||
{
|
{
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Timepoint { get; set; }
|
public decimal Timepoint { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal TimepointIn24H { get; set; }
|
public decimal TimepointIn24H { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal TimepointIn48H { get; set; }
|
public decimal TimepointIn48H { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Adjudication { get; set; }
|
public decimal Adjudication { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal AdjudicationIn24H { get; set; }
|
public decimal AdjudicationIn24H { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal AdjudicationIn48H { get; set; }
|
public decimal AdjudicationIn48H { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Global { get; set; }
|
public decimal Global { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Training { get; set; }
|
public decimal Training { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Downtime { get; set; }
|
public decimal Downtime { get; set; }
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal RefresherTraining { get; set; }
|
public decimal RefresherTraining { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
[Table("VolumeReward")]
|
[Table("VolumeReward")]
|
||||||
public partial class VolumeReward : BaseFullAuditEntity
|
public partial class VolumeReward : BaseFullAuditEntity
|
||||||
{
|
{
|
||||||
[Column(TypeName = "decimal(18,2)")]
|
[DecimalPrecision(18, 2)]
|
||||||
public decimal Price { get; set; }
|
public decimal Price { get; set; }
|
||||||
public int Min { get; set; }
|
public int Min { get; set; }
|
||||||
public int Max { get; set; }
|
public int Max { get; set; }
|
||||||
|
|
|
@ -1,95 +1,91 @@
|
||||||
using EntityFrameworkCore.Projectables;
|
using EntityFrameworkCore.Projectables;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Domain.Models
|
namespace IRaCIS.Core.Domain.Models;
|
||||||
|
|
||||||
|
[Comment("后台 - 系统账户")]
|
||||||
|
[Table("User")]
|
||||||
|
public class User : BaseFullAuditEntity
|
||||||
{
|
{
|
||||||
[Table("User")]
|
#region 导航属性
|
||||||
public partial class User : BaseFullAuditEntity
|
|
||||||
{
|
|
||||||
#region 导航属性
|
|
||||||
[ForeignKey("UserTypeId")]
|
|
||||||
public UserType UserTypeRole { get; set; }
|
|
||||||
|
|
||||||
[JsonIgnore]
|
[ForeignKey("UserTypeId")]
|
||||||
public List<SystemDocConfirmedUser> SystemDocConfirmedList { get; set; }
|
public UserType UserTypeRole { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public List<TrialUser> UserTrials { get; set; } = new List<TrialUser>();
|
public List<SystemDocConfirmedUser> SystemDocConfirmedList { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public List<VisitTask> VisitTaskList { get; set; }
|
public List<TrialUser> UserTrials { get; set; } = new List<TrialUser>();
|
||||||
|
|
||||||
#endregion
|
[JsonIgnore]
|
||||||
|
public List<VisitTask> VisitTaskList { get; set; }
|
||||||
|
|
||||||
|
[Projectable]
|
||||||
|
public string FullName => LastName + " / " + FirstName;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
[StringLength(255)]
|
[Comment(" 自动切换下一个任务")]
|
||||||
public string UserName { get; set; } = String.Empty;
|
public bool AutoCutNextTask { get; set; }
|
||||||
|
|
||||||
[StringLength(255)]
|
public int Code { get; set; }
|
||||||
public string Password { get; set; } = String.Empty;
|
|
||||||
[StringLength(255)]
|
|
||||||
|
|
||||||
public string LastName { get; set; } = String.Empty;
|
[StringLength(400)]
|
||||||
public string FirstName { get; set; } = String.Empty;
|
public string DepartmentName { get; set; } = null!;
|
||||||
|
|
||||||
public string Phone { get; set; } = string.Empty;
|
[Comment(" 医生生成账号后,会有值")]
|
||||||
public string EMail { get; set; } = string.Empty;
|
public Guid? DoctorId { get; set; }
|
||||||
public int? Sex { get; set; }
|
|
||||||
public UserStateEnum Status { get; set; } = UserStateEnum.Enable;
|
|
||||||
|
|
||||||
public DateTime? LastLoginTime { get; set; }
|
public string EMail { get; set; } = null!;
|
||||||
|
|
||||||
public Guid UserTypeId { get; set; } = Guid.Empty;
|
[StringLength(1020)]
|
||||||
|
public string EmailToken { get; set; } = null!;
|
||||||
|
|
||||||
|
public string FirstName { get; set; } = null!;
|
||||||
|
|
||||||
// 内部用户 外部用户
|
[Comment(" 首次登录需要修改密码")]
|
||||||
public bool IsZhiZhun { get; set; }
|
public bool IsFirstAdd { get; set; }
|
||||||
|
|
||||||
public UserTypeEnum UserTypeEnum { get; set; }
|
public bool IsTestUser { get; set; }
|
||||||
|
|
||||||
public string OrganizationName { get; set; } = String.Empty;
|
[Comment(" 内部用户 外部用户")]
|
||||||
|
public bool IsZhiZhun { get; set; }
|
||||||
|
|
||||||
public bool PasswordChanged { get; set; }
|
[Comment(" 上一次修改密码的时间")]
|
||||||
|
public DateTime? LastChangePassWordTime { get; set; }
|
||||||
|
|
||||||
|
public string LastLoginIP { get; set; } = null!;
|
||||||
|
|
||||||
public string UserCode { get; set; } = string.Empty;
|
public DateTime? LastLoginTime { get; set; }
|
||||||
|
|
||||||
public int Code { get; set; }
|
[StringLength(510)]
|
||||||
|
public string LastName { get; set; } = null!;
|
||||||
|
|
||||||
|
public string OrganizationName { get; set; } = null!;
|
||||||
|
|
||||||
public string DepartmentName { get; set; } = String.Empty;
|
public string Password { get; set; } = null!;
|
||||||
|
|
||||||
public string PositionName { get; set; } = String.Empty;
|
public bool PasswordChanged { get; set; }
|
||||||
|
|
||||||
|
[StringLength(400)]
|
||||||
|
public string Phone { get; set; } = null!;
|
||||||
|
|
||||||
public bool IsFirstAdd { get; set; } = true;
|
[StringLength(400)]
|
||||||
|
public string PositionName { get; set; } = null!;
|
||||||
|
|
||||||
public string EmailToken { get; set; } = string.Empty;
|
public int? Sex { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
public UserStateEnum Status { get; set; } = UserStateEnum.Enable;
|
||||||
/// 上一次修改密码的时间
|
|
||||||
/// </summary>
|
|
||||||
public DateTime? LastChangePassWordTime { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
public bool SuperAdmin { get; set; }
|
||||||
/// LastLoginIP
|
|
||||||
/// </summary>
|
|
||||||
public string LastLoginIP { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
//医生生成账号后,会有值
|
[StringLength(400)]
|
||||||
public Guid? DoctorId { get; set; }
|
public string UserCode { get; set; } = null!;
|
||||||
|
|
||||||
public bool IsTestUser { get; set; }
|
public string UserName { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
public UserTypeEnum UserTypeEnum { get; set; }
|
||||||
/// 自动切换下一个任务
|
|
||||||
/// </summary>
|
|
||||||
public bool AutoCutNextTask { get; set; } = false;
|
|
||||||
|
|
||||||
[Projectable]
|
public Guid UserTypeId { get; set; }
|
||||||
public string FullName => LastName + " / " + FirstName;
|
|
||||||
|
|
||||||
//[Projectable] public string FullName => $"{LastName} / {FirstName}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,7 @@
|
||||||
|
|
||||||
namespace IRaCIS.Core.Domain.Models;
|
namespace IRaCIS.Core.Domain.Models;
|
||||||
|
|
||||||
/// <summary>
|
[Comment("项目 - 受试者")]
|
||||||
/// 受试者
|
|
||||||
/// </summary>
|
|
||||||
[Table("Subject")]
|
[Table("Subject")]
|
||||||
public class Subject : BaseFullDeleteAuditEntity
|
public class Subject : BaseFullDeleteAuditEntity
|
||||||
{
|
{
|
||||||
|
@ -60,9 +58,8 @@ public class Subject : BaseFullDeleteAuditEntity
|
||||||
public List<ClinicalForm> ClinicalFormList { get; set; }
|
public List<ClinicalForm> ClinicalFormList { get; set; }
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public Guid? FinalSubjectVisitId { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
public Guid TrialSiteId { get; set; }
|
public Guid TrialSiteId { get; set; }
|
||||||
|
|
||||||
public string Code { get; set; } = string.Empty;
|
public string Code { get; set; } = string.Empty;
|
||||||
|
@ -71,25 +68,20 @@ public class Subject : BaseFullDeleteAuditEntity
|
||||||
public int? Age { get; set; }
|
public int? Age { get; set; }
|
||||||
public string Sex { get; set; } = string.Empty;
|
public string Sex { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Guid? LatestSubjectVisitId { get; set; }
|
public Guid? LatestSubjectVisitId { get; set; }
|
||||||
|
|
||||||
|
public Guid? FinalSubjectVisitId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public Guid TrialId { get; set; } = Guid.Empty;
|
|
||||||
public string MedicalNo { get; set; } = string.Empty;
|
public string MedicalNo { get; set; } = string.Empty;
|
||||||
|
|
||||||
public SubjectStatus Status { get; set; } = SubjectStatus.OnVisit;//1 访视中,2 出组 3 访视结束
|
public SubjectStatus Status { get; set; } = SubjectStatus.OnVisit;//1 访视中,2 出组 3 访视结束
|
||||||
public string Reason { get; set; } = string.Empty;
|
public string Reason { get; set; } = string.Empty;
|
||||||
public bool IsEnrollment { get; set; }
|
public bool IsEnrollment { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public DateTime? OutEnrollmentTime { get; set; }
|
public DateTime? OutEnrollmentTime { get; set; }
|
||||||
|
|
||||||
public DateTime? VisitOverTime { get; set; }
|
public DateTime? VisitOverTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public string ShortName { get; set; } = String.Empty;
|
public string ShortName { get; set; } = String.Empty;
|
||||||
|
|
||||||
public string Height { get; set; } = String.Empty;
|
public string Height { get; set; } = String.Empty;
|
||||||
|
@ -97,15 +89,15 @@ public class Subject : BaseFullDeleteAuditEntity
|
||||||
public string Weight { get; set; } = String.Empty;
|
public string Weight { get; set; } = String.Empty;
|
||||||
|
|
||||||
public DateTime? BirthDate { get; set; }
|
public DateTime? BirthDate { get; set; }
|
||||||
|
|
||||||
|
[Comment("知情同意书签署日期")]
|
||||||
public DateTime? SignDate { get; set; }
|
public DateTime? SignDate { get; set; }
|
||||||
|
|
||||||
public DateTime? FirstGiveMedicineTime { get; set; }
|
public DateTime? FirstGiveMedicineTime { get; set; }
|
||||||
|
|
||||||
public bool IsUrgent { get; set; }
|
public bool IsUrgent { get; set; }
|
||||||
|
|
||||||
|
[Comment("重阅或者退回影响一致性分析")]
|
||||||
|
|
||||||
|
|
||||||
public bool IsReReadingOrBackInfluenceAnalysis { get; set; }
|
public bool IsReReadingOrBackInfluenceAnalysis { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,250 +1,221 @@
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
|
||||||
|
|
||||||
namespace IRaCIS.Core.Domain.Models
|
namespace IRaCIS.Core.Domain.Models;
|
||||||
|
|
||||||
|
[Comment("受试者访视")]
|
||||||
|
[Table("SubjectVisit")]
|
||||||
|
public class SubjectVisit : BaseFullDeleteAuditEntity
|
||||||
{
|
{
|
||||||
[Table("SubjectVisit")]
|
#region 导航属性
|
||||||
public class SubjectVisit : BaseFullDeleteAuditEntity
|
|
||||||
{
|
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public TrialSite TrialSite { get; set; }
|
||||||
|
|
||||||
#region 导航属性
|
[JsonIgnore]
|
||||||
|
[ForeignKey("OutPlanPreviousVisitId")]
|
||||||
|
public SubjectVisit OutPlanPreviousVisit { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
|
||||||
public TrialSite TrialSite { get; set; }
|
|
||||||
|
|
||||||
[JsonIgnore]
|
|
||||||
[ForeignKey("OutPlanPreviousVisitId")]
|
|
||||||
public SubjectVisit OutPlanPreviousVisit { get; set; }
|
|
||||||
|
|
||||||
|
[ForeignKey("ForwardUserId")]
|
||||||
|
public User ForwardUser { get; set; }
|
||||||
|
|
||||||
|
|
||||||
[ForeignKey("ForwardUserId")]
|
[JsonIgnore]
|
||||||
public User ForwardUser { get; set; }
|
[ForeignKey("PreliminaryAuditUserId")]
|
||||||
|
public User PreliminaryAuditUser { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("ReviewAuditUserId")]
|
||||||
|
public User ReviewAuditUser { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
[ForeignKey("PreliminaryAuditUserId")]
|
[ForeignKey("CurrentActionUserId")]
|
||||||
public User PreliminaryAuditUser { get; set; }
|
public User CurrentActionUser { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("SubmitUserId")]
|
||||||
|
public User SubmitUser { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
//导航属性
|
||||||
[ForeignKey("ReviewAuditUserId")]
|
[JsonIgnore]
|
||||||
public User ReviewAuditUser { get; set; }
|
[ForeignKey("TrialId")]
|
||||||
|
public Trial Trial { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
|
||||||
[ForeignKey("CurrentActionUserId")]
|
|
||||||
public User CurrentActionUser { get; set; }
|
|
||||||
[JsonIgnore]
|
|
||||||
[ForeignKey("SubmitUserId")]
|
|
||||||
public User SubmitUser { get; set; }
|
|
||||||
|
|
||||||
//导航属性
|
[JsonIgnore]
|
||||||
[JsonIgnore]
|
public List<ReadModule> ReadModuleList { get; set; }
|
||||||
[ForeignKey("TrialId")]
|
|
||||||
public Trial Trial { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public List<ReadModule> ReadModuleList { get; set; }
|
[ForeignKey("SubjectId")]
|
||||||
|
public Subject Subject { get; set; }
|
||||||
|
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
[ForeignKey("SubjectId")]
|
public List<PreviousHistory> PreviousHistoryList { get; set; }
|
||||||
public Subject Subject { get; set; }
|
[JsonIgnore]
|
||||||
|
public List<PreviousOther> PreviousOtherList { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<PreviousSurgery> PreviousSurgeryList { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<PreviousPDF> PreviousPDFList { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<ReadingClinicalData> ReadingClinicalDataList { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<CheckChallengeDialog> CheckChallengeDialogList { get; set; } = new List<CheckChallengeDialog>();
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<DicomStudy> StudyList { get; set; } = new List<DicomStudy>();
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<NoneDicomStudy> NoneDicomStudyList { get; set; } = new List<NoneDicomStudy>();
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<QCChallenge> QCChallengeList { get; set; } = new List<QCChallenge>();
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<QCChallengeDialog> QCChallengeDialogList { get; set; } = new List<QCChallengeDialog>();
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<VisitTask> VisitTaskList { get; set; } = new List<VisitTask>();
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public List<PreviousHistory> PreviousHistoryList { get; set; }
|
public List<SubjectCriteriaEvaluationVisitFilter> SubjectCriteriaEvaluationVisitFilterList { get; set; }
|
||||||
[JsonIgnore]
|
#endregion
|
||||||
public List<PreviousOther> PreviousOtherList { get; set; }
|
|
||||||
[JsonIgnore]
|
|
||||||
public List<PreviousSurgery> PreviousSurgeryList { get; set; }
|
|
||||||
[JsonIgnore]
|
|
||||||
public List<PreviousPDF> PreviousPDFList { get; set; }
|
|
||||||
[JsonIgnore]
|
|
||||||
public List<ReadingClinicalData> ReadingClinicalDataList { get; set; }
|
|
||||||
[JsonIgnore]
|
|
||||||
public List<CheckChallengeDialog> CheckChallengeDialogList { get; set; } = new List<CheckChallengeDialog>();
|
|
||||||
[JsonIgnore]
|
|
||||||
public List<DicomStudy> StudyList { get; set; } = new List<DicomStudy>();
|
|
||||||
[JsonIgnore]
|
|
||||||
public List<NoneDicomStudy> NoneDicomStudyList { get; set; } = new List<NoneDicomStudy>();
|
|
||||||
|
|
||||||
[JsonIgnore]
|
public Guid TrialSiteId { get; set; }
|
||||||
public List<QCChallenge> QCChallengeList { get; set; } = new List<QCChallenge>();
|
public Guid TrialId { get; set; }
|
||||||
[JsonIgnore]
|
public Guid SubjectId { get; set; }
|
||||||
public List<QCChallengeDialog> QCChallengeDialogList { get; set; } = new List<QCChallengeDialog>();
|
|
||||||
[JsonIgnore]
|
|
||||||
public List<VisitTask> VisitTaskList { get; set; } = new List<VisitTask>();
|
|
||||||
|
|
||||||
[JsonIgnore]
|
[Comment("访视计划Id,计划外没有")]
|
||||||
public List<SubjectCriteriaEvaluationVisitFilter> SubjectCriteriaEvaluationVisitFilterList { get; set; }
|
public Guid? VisitStageId { get; set; }
|
||||||
#endregion
|
public int VisitDay { get; set; }
|
||||||
|
public string VisitName { get; set; } = string.Empty;
|
||||||
|
public int VisitWindowLeft { get; set; }
|
||||||
|
public int VisitWindowRight { get; set; }
|
||||||
|
|
||||||
|
[DecimalPrecision(18, 1)]
|
||||||
|
public decimal VisitNum { get; set; }
|
||||||
|
public string BlindName { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string SVUPDES { get; set; } = string.Empty;
|
||||||
|
public DateTime? SVSTDTC { get; set; }
|
||||||
|
public DateTime? SVENDTC { get; set; }
|
||||||
|
public bool InPlan { get; set; } = true;
|
||||||
|
public bool IsBaseLine { get; set; } = false;
|
||||||
|
|
||||||
public Guid TrialSiteId { get; set; }
|
[Comment("0 未执行 1 执行了 2 不可用")]
|
||||||
|
public VisitExecutedEnum VisitExecuted { get; set; } = VisitExecutedEnum.UnExecuted;
|
||||||
|
|
||||||
//一个访视 对应有对应Site的 TrialSiteCode
|
public DateTime? EarliestScanDate { get; set; }
|
||||||
|
|
||||||
public Guid TrialId { get; set; }
|
[Comment("最晚拍片日期")]
|
||||||
public Guid SubjectId { get; set; }
|
public DateTime? LatestScanDate { get; set; }
|
||||||
|
|
||||||
public Guid? VisitStageId { get; set; }
|
public Guid? Auditor { get; set; }
|
||||||
public int VisitDay { get; set; }
|
|
||||||
public string VisitName { get; set; } = string.Empty;
|
|
||||||
public int VisitWindowLeft { get; set; }
|
|
||||||
public int VisitWindowRight { get; set; }
|
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,1)")]
|
[Comment("核查状态")]
|
||||||
public decimal VisitNum { get; set; }
|
public CheckStateEnum CheckState { get; set; }
|
||||||
public string BlindName { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public string SVUPDES { get; set; } = string.Empty;
|
[Comment("提交状态")]
|
||||||
public DateTime? SVSTDTC { get; set; }
|
public SubmitStateEnum SubmitState { get; set; }
|
||||||
public DateTime? SVENDTC { get; set; }
|
|
||||||
public bool InPlan { get; set; } = true;
|
|
||||||
public bool IsBaseLine { get; set; } = false;
|
|
||||||
|
|
||||||
|
[Comment("审核状态")]
|
||||||
|
public AuditStateEnum AuditState { get; set; }
|
||||||
|
public ForwardStateEnum ForwardState { get; set; }
|
||||||
|
|
||||||
//0 未执行 1 执行了 2 不可用
|
|
||||||
public VisitExecutedEnum VisitExecuted { get; set; } = VisitExecutedEnum.UnExecuted;
|
|
||||||
|
|
||||||
public DateTime? EarliestScanDate { get; set; }
|
[Comment("单审通过人")]
|
||||||
|
public Guid? PreliminaryAuditUserId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
[Comment("双审通过人")]
|
||||||
/// 最晚拍片日期
|
public Guid? ReviewAuditUserId { get; set; }
|
||||||
/// </summary>
|
|
||||||
public DateTime? LatestScanDate { get; set; }
|
|
||||||
|
|
||||||
public Guid? Auditor { get; set; }
|
[Comment("一致性核查人Id")]
|
||||||
|
public Guid? CheckUserId { get; set; }
|
||||||
|
|
||||||
|
public DateTime? ReviewAuditTime { get; set; }
|
||||||
|
public DateTime? PreliminaryAuditTime { get; set; }
|
||||||
|
public Guid? ForwardUserId { get; set; }
|
||||||
|
public DateTime? ForwardTime { get; set; }
|
||||||
|
|
||||||
//核查状态
|
[Comment("当前质控领取人")]
|
||||||
public CheckStateEnum CheckState { get; set; }
|
public Guid? CurrentActionUserId { get; set; }
|
||||||
|
public DateTime? CurrentActionUserExpireTime { get; set; }
|
||||||
|
|
||||||
//提交状态
|
public DateTime? SubmitTime { get; set; }
|
||||||
public SubmitStateEnum SubmitState { get; set; }
|
public DateTime? CheckTime { get; set; }
|
||||||
//审核状态
|
|
||||||
public AuditStateEnum AuditState { get; set; }
|
|
||||||
public ForwardStateEnum ForwardState { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
[Comment("通过原因")]
|
||||||
/// 单审通过人
|
public string ManualPassReason { get; set; } = string.Empty;
|
||||||
/// </summary>
|
|
||||||
public Guid? PreliminaryAuditUserId { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
public bool IsUrgent { get; set; }
|
||||||
/// 双审通过人
|
|
||||||
/// </summary>
|
|
||||||
public Guid? ReviewAuditUserId { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
public bool IsTake { get; set; }
|
||||||
/// 一致性核查人Id
|
|
||||||
/// </summary>
|
|
||||||
public Guid? CheckUserId { get; set; }
|
|
||||||
|
|
||||||
public DateTime? ReviewAuditTime { get; set; }
|
public bool IsFinalVisit { get; set; }
|
||||||
public DateTime? PreliminaryAuditTime { get; set; }
|
|
||||||
public Guid? ForwardUserId { get; set; }
|
|
||||||
public DateTime? ForwardTime { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
public ChallengeStateEnum ChallengeState { get; set; }
|
||||||
/// 当前质控领取人
|
|
||||||
/// </summary>
|
|
||||||
public Guid? CurrentActionUserId { get; set; }
|
|
||||||
public DateTime? CurrentActionUserExpireTime { get; set; }
|
|
||||||
|
|
||||||
public DateTime? SubmitTime { get; set; }
|
public string CheckResult { get; set; } = String.Empty;
|
||||||
public DateTime? CheckTime { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
[Comment("是否一致性核查回退")]
|
||||||
/// 通过原因
|
public bool? IsCheckBack { get; set; }
|
||||||
/// </summary>
|
|
||||||
public string ManualPassReason { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
public bool IsUrgent { get; set; }
|
public DateTime? CheckBackTime { get; set; }
|
||||||
|
|
||||||
public bool IsTake { get; set; }
|
public CheckChanllengeTypeEnum CheckChallengeState { get; set; }
|
||||||
|
public PDStateEnum PDState { get; set; } = PDStateEnum.None;
|
||||||
|
|
||||||
public bool IsFinalVisit { get; set; }
|
|
||||||
|
|
||||||
public ChallengeStateEnum ChallengeState { get; set; }
|
public DateTime? CheckPassedTime { get; set; }
|
||||||
|
|
||||||
public string CheckResult { get; set; } = String.Empty;
|
|
||||||
|
|
||||||
//是否一致性核查回退
|
[Comment("计划外上一访视")]
|
||||||
public bool? IsCheckBack { get; set; }
|
public Guid? OutPlanPreviousVisitId { get; set; }
|
||||||
|
|
||||||
public DateTime? CheckBackTime { get; set; }
|
|
||||||
|
|
||||||
public CheckChanllengeTypeEnum CheckChallengeState { get; set; }
|
public RequestBackStateEnum RequestBackState { get; set; }
|
||||||
public PDStateEnum PDState { get; set; } = PDStateEnum.None;
|
|
||||||
|
|
||||||
|
|
||||||
public DateTime? CheckPassedTime { get; set; }
|
public bool IsQCConfirmedReupload { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
public bool IsLostVisit { get; set; }
|
||||||
/// 上一访视
|
|
||||||
/// </summary>
|
|
||||||
public Guid? OutPlanPreviousVisitId { get; set; }
|
|
||||||
|
|
||||||
|
[Comment("是否确认了、签名了 临床数据完整性")]
|
||||||
|
public bool? IsConfirmedClinicalData { get; set; }
|
||||||
|
|
||||||
public RequestBackStateEnum RequestBackState { get; set; }
|
public bool IsEnrollmentConfirm { get; set; }
|
||||||
|
|
||||||
|
public bool IsVisitTaskGenerated { get; set; }
|
||||||
|
|
||||||
public bool IsQCConfirmedReupload { get; set; }
|
public bool IsPMBackOrReReading { get; set; }
|
||||||
|
|
||||||
public bool IsLostVisit { get; set; }
|
[Comment("关闭一致性质疑原因")]
|
||||||
|
public string CloseTheReason { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public Guid? SubmitUserId { get; set; }
|
||||||
|
|
||||||
//是否确认了、签名了 临床数据完整性
|
|
||||||
public bool? IsConfirmedClinicalData { get; set; }
|
|
||||||
|
|
||||||
|
public ReadingStatusEnum ReadingStatus { get; set; }
|
||||||
|
|
||||||
public bool IsEnrollmentConfirm { get; set; }
|
|
||||||
|
|
||||||
public bool IsVisitTaskGenerated { get; set; }
|
}
|
||||||
|
/// <summary>
|
||||||
public bool IsPMBackOrReReading { get; set; }
|
/// 影像下载打包状态
|
||||||
|
/// </summary>
|
||||||
/// <summary>
|
public enum PackState
|
||||||
/// 关闭一致性质疑原因
|
{
|
||||||
/// </summary>
|
|
||||||
public string CloseTheReason { get; set; } = string.Empty;
|
/// <summary>
|
||||||
|
/// 待打包
|
||||||
public Guid? SubmitUserId { get; set; }
|
/// </summary>
|
||||||
|
WaitPack = 0,
|
||||||
|
|
||||||
public ReadingStatusEnum ReadingStatus { get; set; }
|
/// <summary>
|
||||||
|
/// 打包中
|
||||||
public string VisitImageZipPath { get; set; } = string.Empty;
|
/// </summary>
|
||||||
|
Packing = 1,
|
||||||
public PackState PackState { get; set; }
|
|
||||||
|
/// <summary>
|
||||||
public PackState NoDicomPackState { get; set; }
|
/// 打包完成
|
||||||
|
/// </summary>
|
||||||
public string VisitNoDicomImageZipPath { get; set; } = string.Empty;
|
Packed = 2
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// 影像下载打包状态
|
|
||||||
/// </summary>
|
|
||||||
public enum PackState
|
|
||||||
{
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 待打包
|
|
||||||
/// </summary>
|
|
||||||
WaitPack = 0,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 打包中
|
|
||||||
/// </summary>
|
|
||||||
Packing = 1,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 打包完成
|
|
||||||
/// </summary>
|
|
||||||
Packed = 2
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
public string BlindName { get; set; } = string.Empty;
|
public string BlindName { get; set; } = string.Empty;
|
||||||
|
|
||||||
[Column(TypeName = "decimal(18,1)")]
|
[DecimalPrecision(18, 1)]
|
||||||
public decimal VisitNum { get; set; }
|
public decimal VisitNum { get; set; }
|
||||||
public string VisitName { get; set; } = string.Empty;
|
public string VisitName { get; set; } = string.Empty;
|
||||||
public int VisitDay { get; set; }
|
public int VisitDay { get; set; }
|
||||||
|
|
Loading…
Reference in New Issue