diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 217a59fc9..9cfa3fc81 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1492,16 +1492,6 @@
-
-
- 打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
-
-
-
-
-
-
-
受试者级别所有的影像
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs
index 36d9fa60c..977f0c618 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs
@@ -18,7 +18,6 @@
public string CriterionModalitys { get; set; }
public Guid? SourceSubjectVisitId { get; set; }
- public PackState PackState { get; set; }
public List OrginalStudyList { get; set; }
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
index 171c01ae8..29fedaebe 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
@@ -131,7 +131,6 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
TaskName = u.TaskName,
SourceSubjectVisitId = u.SourceSubjectVisitId,
- PackState = u.SourceSubjectVisit.PackState,
OrginalStudyList = u.SourceSubjectVisit.StudyList
.Where(t => u.TrialReadingCriterion.IsImageFilter ? ("|" + u.TrialReadingCriterion.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true)
@@ -1011,59 +1010,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
#region 之前后端下载废弃
- ///
- /// 打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
- ///
- ///
- ///
- ///
- ///
- ///
- [Obsolete]
- public async Task 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(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(t => t.PackageAndAnonymizImage(trialId, subjectVisitId, true, isAnonymize), TimeSpan.FromSeconds(1));
-
- }
- else
- {
- subjectVisit.NoDicomPackState = PackState.Packing;
-
- HangfireJobHelper.NotImmediatelyOnceOnlyJob(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
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);
@@ -1410,7 +1357,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
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)
{
- 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 });
}
diff --git a/IRaCIS.Core.Domain/Financial/ExchangeRate.cs b/IRaCIS.Core.Domain/Financial/ExchangeRate.cs
index 82d7c370b..c38f35124 100644
--- a/IRaCIS.Core.Domain/Financial/ExchangeRate.cs
+++ b/IRaCIS.Core.Domain/Financial/ExchangeRate.cs
@@ -5,7 +5,7 @@
{
public string YearMonth { get; set; } = string.Empty;
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Rate { get; set; }
}
diff --git a/IRaCIS.Core.Domain/Financial/Payment.cs b/IRaCIS.Core.Domain/Financial/Payment.cs
index 2d5a08aa3..dc7a6410f 100644
--- a/IRaCIS.Core.Domain/Financial/Payment.cs
+++ b/IRaCIS.Core.Domain/Financial/Payment.cs
@@ -9,20 +9,20 @@ namespace IRaCIS.Core.Domain.Models
public bool IsLock { get; set; }
public DateTime YearMonthDate { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal PaymentUSD { get; set; }
- [Column(TypeName = "decimal(18,4)")]
+ [DecimalPrecision(18, 4)]
public decimal PaymentCNY { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal ExchangeRate { get; set; }
- [Column(TypeName = "decimal(18,4)")]
+ [DecimalPrecision(18, 4)]
public decimal AdjustmentCNY { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal AdjustmentUSD { get; set; }
public DateTime CalculateTime { get; set; } = DateTime.Now;
diff --git a/IRaCIS.Core.Domain/Financial/PaymentAdjustment.cs b/IRaCIS.Core.Domain/Financial/PaymentAdjustment.cs
index e1efc17ba..542201fc2 100644
--- a/IRaCIS.Core.Domain/Financial/PaymentAdjustment.cs
+++ b/IRaCIS.Core.Domain/Financial/PaymentAdjustment.cs
@@ -8,16 +8,16 @@ namespace IRaCIS.Core.Domain.Models
public DateTime YearMonthDate { get; set; }
public string YearMonth { get; set; } = string.Empty;
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal AdjustmentUSD { get; set; }
- [Column(TypeName = "decimal(18,4)")]
+ [DecimalPrecision(18, 4)]
public decimal AdjustmentCNY { get; set; }
public Guid TrialId { get; set; } = Guid.Empty;
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal ExchangeRate { get; set; }
public bool IsLock { get; set; } = false;
public string Note { get; set; } = string.Empty;
diff --git a/IRaCIS.Core.Domain/Financial/PaymentDetail.cs b/IRaCIS.Core.Domain/Financial/PaymentDetail.cs
index 91f002eed..39090d816 100644
--- a/IRaCIS.Core.Domain/Financial/PaymentDetail.cs
+++ b/IRaCIS.Core.Domain/Financial/PaymentDetail.cs
@@ -15,22 +15,22 @@ namespace IRaCIS.Core.Domain.Models
public string PaymentType { get; set; } = string.Empty;
public int Count { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal BasePrice { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal PersonalAdditional { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal TrialAdditional { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal ExchangeRate { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal PaymentUSD { get; set; }
- [Column(TypeName = "decimal(18,4)")]
+ [DecimalPrecision(18, 4)]
public decimal PaymentCNY { get; set; }
public int ShowTypeOrder { get; set; }
diff --git a/IRaCIS.Core.Domain/Financial/RankPrice.cs b/IRaCIS.Core.Domain/Financial/RankPrice.cs
index 18e54d999..5d026d935 100644
--- a/IRaCIS.Core.Domain/Financial/RankPrice.cs
+++ b/IRaCIS.Core.Domain/Financial/RankPrice.cs
@@ -6,34 +6,34 @@ namespace IRaCIS.Core.Domain.Models
[StringLength(200)]
public string RankName { get; set; } = string.Empty;
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Timepoint { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal TimepointIn24H { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal TimepointIn48H { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Adjudication { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal AdjudicationIn24H { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal AdjudicationIn48H { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Global { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Training { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Downtime { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal RefresherTraining { get; set; }
public int ShowOrder { get; set; }
}
diff --git a/IRaCIS.Core.Domain/Financial/TrialPaymentPrice.cs b/IRaCIS.Core.Domain/Financial/TrialPaymentPrice.cs
index 098cbb490..cda951ac4 100644
--- a/IRaCIS.Core.Domain/Financial/TrialPaymentPrice.cs
+++ b/IRaCIS.Core.Domain/Financial/TrialPaymentPrice.cs
@@ -7,13 +7,13 @@ namespace IRaCIS.Core.Domain.Models
public Trial Trial { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal TrialAdditional { get; set; } = 0;
public string SowName { 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;
///
diff --git a/IRaCIS.Core.Domain/Financial/TrialRevenuesPrice.cs b/IRaCIS.Core.Domain/Financial/TrialRevenuesPrice.cs
index bed8eb9bc..8a8cdb94e 100644
--- a/IRaCIS.Core.Domain/Financial/TrialRevenuesPrice.cs
+++ b/IRaCIS.Core.Domain/Financial/TrialRevenuesPrice.cs
@@ -5,34 +5,34 @@
{
public Guid TrialId { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Timepoint { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal TimepointIn24H { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal TimepointIn48H { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Adjudication { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal AdjudicationIn24H { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal AdjudicationIn48H { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Global { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Training { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Downtime { get; set; }
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal RefresherTraining { get; set; }
}
diff --git a/IRaCIS.Core.Domain/Financial/VolumeReward.cs b/IRaCIS.Core.Domain/Financial/VolumeReward.cs
index fc99d4bb9..e05088f70 100644
--- a/IRaCIS.Core.Domain/Financial/VolumeReward.cs
+++ b/IRaCIS.Core.Domain/Financial/VolumeReward.cs
@@ -3,7 +3,7 @@ namespace IRaCIS.Core.Domain.Models
[Table("VolumeReward")]
public partial class VolumeReward : BaseFullAuditEntity
{
- [Column(TypeName = "decimal(18,2)")]
+ [DecimalPrecision(18, 2)]
public decimal Price { get; set; }
public int Min { get; set; }
public int Max { get; set; }
diff --git a/IRaCIS.Core.Domain/Management/User.cs b/IRaCIS.Core.Domain/Management/User.cs
index 53b27509a..35f999275 100644
--- a/IRaCIS.Core.Domain/Management/User.cs
+++ b/IRaCIS.Core.Domain/Management/User.cs
@@ -1,95 +1,91 @@
using EntityFrameworkCore.Projectables;
using IRaCIS.Core.Domain.Share;
-namespace IRaCIS.Core.Domain.Models
+namespace IRaCIS.Core.Domain.Models;
+
+[Comment("̨ - ϵͳ˻")]
+[Table("User")]
+public class User : BaseFullAuditEntity
{
- [Table("User")]
- public partial class User : BaseFullAuditEntity
- {
- #region
- [ForeignKey("UserTypeId")]
- public UserType UserTypeRole { get; set; }
+ #region
- [JsonIgnore]
- public List SystemDocConfirmedList { get; set; }
+ [ForeignKey("UserTypeId")]
+ public UserType UserTypeRole { get; set; }
- [JsonIgnore]
- public List UserTrials { get; set; } = new List();
+ [JsonIgnore]
+ public List SystemDocConfirmedList { get; set; }
- [JsonIgnore]
- public List VisitTaskList { get; set; }
+ [JsonIgnore]
+ public List UserTrials { get; set; } = new List();
- #endregion
+ [JsonIgnore]
+ public List VisitTaskList { get; set; }
+ [Projectable]
+ public string FullName => LastName + " / " + FirstName;
+ #endregion
- [StringLength(255)]
- public string UserName { get; set; } = String.Empty;
+ [Comment(" Զлһ")]
+ public bool AutoCutNextTask { get; set; }
- [StringLength(255)]
- public string Password { get; set; } = String.Empty;
- [StringLength(255)]
+ public int Code { get; set; }
- public string LastName { get; set; } = String.Empty;
- public string FirstName { get; set; } = String.Empty;
+ [StringLength(400)]
+ public string DepartmentName { get; set; } = null!;
- public string Phone { get; set; } = string.Empty;
- public string EMail { get; set; } = string.Empty;
- public int? Sex { get; set; }
- public UserStateEnum Status { get; set; } = UserStateEnum.Enable;
+ [Comment(" ҽ˺źֵ")]
+ public Guid? DoctorId { get; set; }
- 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!;
- // ڲû ⲿû
- public bool IsZhiZhun { get; set; }
+ [Comment(" ״ε¼Ҫ")]
+ 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; }
- ///
- /// һʱ
- ///
- public DateTime? LastChangePassWordTime { get; set; }
+ public UserStateEnum Status { get; set; } = UserStateEnum.Enable;
- ///
- /// LastLoginIP
- ///
- public string LastLoginIP { get; set; } = string.Empty;
+ public bool SuperAdmin { get; set; }
- //ҽ˺źֵ
- public Guid? DoctorId { get; set; }
+ [StringLength(400)]
+ public string UserCode { get; set; } = null!;
- public bool IsTestUser { get; set; }
+ public string UserName { get; set; } = null!;
- ///
- /// Զлһ
- ///
- public bool AutoCutNextTask { get; set; } = false;
+ public UserTypeEnum UserTypeEnum { get; set; }
- [Projectable]
- public string FullName => LastName + " / " + FirstName;
-
- //[Projectable] public string FullName => $"{LastName} / {FirstName}";
- }
+ public Guid UserTypeId { get; set; }
}
diff --git a/IRaCIS.Core.Domain/Visit/Subject.cs b/IRaCIS.Core.Domain/Visit/Subject.cs
index 3dc2582c7..78eb287de 100644
--- a/IRaCIS.Core.Domain/Visit/Subject.cs
+++ b/IRaCIS.Core.Domain/Visit/Subject.cs
@@ -2,9 +2,7 @@
namespace IRaCIS.Core.Domain.Models;
-///
-/// 受试者
-///
+[Comment("项目 - 受试者")]
[Table("Subject")]
public class Subject : BaseFullDeleteAuditEntity
{
@@ -60,9 +58,8 @@ public class Subject : BaseFullDeleteAuditEntity
public List ClinicalFormList { get; set; }
#endregion
- public Guid? FinalSubjectVisitId { get; set; }
-
+ public Guid TrialId { get; set; }
public Guid TrialSiteId { get; set; }
public string Code { get; set; } = string.Empty;
@@ -71,25 +68,20 @@ public class Subject : BaseFullDeleteAuditEntity
public int? Age { get; set; }
public string Sex { get; set; } = string.Empty;
-
-
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 SubjectStatus Status { get; set; } = SubjectStatus.OnVisit;//1 访视中,2 出组 3 访视结束
public string Reason { get; set; } = string.Empty;
public bool IsEnrollment { get; set; }
-
public DateTime? OutEnrollmentTime { get; set; }
public DateTime? VisitOverTime { get; set; }
-
public string ShortName { 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 DateTime? BirthDate { get; set; }
+
+ [Comment("知情同意书签署日期")]
public DateTime? SignDate { get; set; }
public DateTime? FirstGiveMedicineTime { get; set; }
public bool IsUrgent { get; set; }
-
-
-
+ [Comment("重阅或者退回影响一致性分析")]
public bool IsReReadingOrBackInfluenceAnalysis { get; set; }
diff --git a/IRaCIS.Core.Domain/Visit/SubjectVisit.cs b/IRaCIS.Core.Domain/Visit/SubjectVisit.cs
index 7e7480505..dc455e434 100644
--- a/IRaCIS.Core.Domain/Visit/SubjectVisit.cs
+++ b/IRaCIS.Core.Domain/Visit/SubjectVisit.cs
@@ -1,250 +1,221 @@
using IRaCIS.Core.Domain.Share;
-namespace IRaCIS.Core.Domain.Models
+namespace IRaCIS.Core.Domain.Models;
+
+[Comment("受试者访视")]
+[Table("SubjectVisit")]
+public class SubjectVisit : BaseFullDeleteAuditEntity
{
- [Table("SubjectVisit")]
- public class SubjectVisit : BaseFullDeleteAuditEntity
- {
+ #region 导航属性
+ [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")]
- public User ForwardUser { get; set; }
+ [JsonIgnore]
+ [ForeignKey("PreliminaryAuditUserId")]
+ public User PreliminaryAuditUser { get; set; }
+ [JsonIgnore]
+ [ForeignKey("ReviewAuditUserId")]
+ public User ReviewAuditUser { get; set; }
- [JsonIgnore]
- [ForeignKey("PreliminaryAuditUserId")]
- public User PreliminaryAuditUser { get; set; }
+ [JsonIgnore]
+ [ForeignKey("CurrentActionUserId")]
+ public User CurrentActionUser { get; set; }
+ [JsonIgnore]
+ [ForeignKey("SubmitUserId")]
+ public User SubmitUser { get; set; }
- [JsonIgnore]
- [ForeignKey("ReviewAuditUserId")]
- public User ReviewAuditUser { get; set; }
+ //导航属性
+ [JsonIgnore]
+ [ForeignKey("TrialId")]
+ public Trial Trial { get; set; }
- [JsonIgnore]
- [ForeignKey("CurrentActionUserId")]
- public User CurrentActionUser { get; set; }
- [JsonIgnore]
- [ForeignKey("SubmitUserId")]
- public User SubmitUser { get; set; }
- //导航属性
- [JsonIgnore]
- [ForeignKey("TrialId")]
- public Trial Trial { get; set; }
+ [JsonIgnore]
+ public List ReadModuleList { get; set; }
- [JsonIgnore]
- public List ReadModuleList { get; set; }
+ [JsonIgnore]
+ [ForeignKey("SubjectId")]
+ public Subject Subject { get; set; }
- [JsonIgnore]
- [ForeignKey("SubjectId")]
- public Subject Subject { get; set; }
+ [JsonIgnore]
+ public List PreviousHistoryList { get; set; }
+ [JsonIgnore]
+ public List PreviousOtherList { get; set; }
+ [JsonIgnore]
+ public List PreviousSurgeryList { get; set; }
+ [JsonIgnore]
+ public List PreviousPDFList { get; set; }
+ [JsonIgnore]
+ public List ReadingClinicalDataList { get; set; }
+ [JsonIgnore]
+ public List CheckChallengeDialogList { get; set; } = new List();
+ [JsonIgnore]
+ public List StudyList { get; set; } = new List();
+ [JsonIgnore]
+ public List NoneDicomStudyList { get; set; } = new List();
+ [JsonIgnore]
+ public List QCChallengeList { get; set; } = new List();
+ [JsonIgnore]
+ public List QCChallengeDialogList { get; set; } = new List();
+ [JsonIgnore]
+ public List VisitTaskList { get; set; } = new List();
- [JsonIgnore]
- public List PreviousHistoryList { get; set; }
- [JsonIgnore]
- public List PreviousOtherList { get; set; }
- [JsonIgnore]
- public List PreviousSurgeryList { get; set; }
- [JsonIgnore]
- public List PreviousPDFList { get; set; }
- [JsonIgnore]
- public List ReadingClinicalDataList { get; set; }
- [JsonIgnore]
- public List CheckChallengeDialogList { get; set; } = new List();
- [JsonIgnore]
- public List StudyList { get; set; } = new List();
- [JsonIgnore]
- public List NoneDicomStudyList { get; set; } = new List();
+ [JsonIgnore]
+ public List SubjectCriteriaEvaluationVisitFilterList { get; set; }
+ #endregion
- [JsonIgnore]
- public List QCChallengeList { get; set; } = new List();
- [JsonIgnore]
- public List QCChallengeDialogList { get; set; } = new List();
- [JsonIgnore]
- public List VisitTaskList { get; set; } = new List();
+ public Guid TrialSiteId { get; set; }
+ public Guid TrialId { get; set; }
+ public Guid SubjectId { get; set; }
- [JsonIgnore]
- public List SubjectCriteriaEvaluationVisitFilterList { get; set; }
- #endregion
+ [Comment("访视计划Id,计划外没有")]
+ public Guid? VisitStageId { get; set; }
+ 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; }
- public Guid SubjectId { get; set; }
+ [Comment("最晚拍片日期")]
+ public DateTime? LatestScanDate { get; set; }
- public Guid? VisitStageId { get; set; }
- public int VisitDay { get; set; }
- public string VisitName { get; set; } = string.Empty;
- public int VisitWindowLeft { get; set; }
- public int VisitWindowRight { get; set; }
+ public Guid? Auditor { get; set; }
- [Column(TypeName = "decimal(18,1)")]
- public decimal VisitNum { get; set; }
- public string BlindName { get; set; } = string.Empty;
+ [Comment("核查状态")]
+ public CheckStateEnum CheckState { get; set; }
- 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;
+ [Comment("提交状态")]
+ public SubmitStateEnum SubmitState { get; set; }
+ [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; }
- ///
- /// 最晚拍片日期
- ///
- public DateTime? LatestScanDate { get; set; }
+ [Comment("双审通过人")]
+ public Guid? ReviewAuditUserId { 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; }
- //核查状态
- public CheckStateEnum CheckState { get; set; }
+ [Comment("当前质控领取人")]
+ public Guid? CurrentActionUserId { get; set; }
+ public DateTime? CurrentActionUserExpireTime { get; set; }
- //提交状态
- public SubmitStateEnum SubmitState { get; set; }
- //审核状态
- public AuditStateEnum AuditState { get; set; }
- public ForwardStateEnum ForwardState { get; set; }
+ public DateTime? SubmitTime { get; set; }
+ public DateTime? CheckTime { get; set; }
- ///
- /// 单审通过人
- ///
- public Guid? PreliminaryAuditUserId { get; set; }
+ [Comment("通过原因")]
+ public string ManualPassReason { get; set; } = string.Empty;
- ///
- /// 双审通过人
- ///
- public Guid? ReviewAuditUserId { get; set; }
+ public bool IsUrgent { get; set; }
- ///
- /// 一致性核查人Id
- ///
- public Guid? CheckUserId { get; set; }
+ public bool IsTake { get; set; }
- public DateTime? ReviewAuditTime { get; set; }
- public DateTime? PreliminaryAuditTime { get; set; }
- public Guid? ForwardUserId { get; set; }
- public DateTime? ForwardTime { get; set; }
+ public bool IsFinalVisit { get; set; }
- ///
- /// 当前质控领取人
- ///
- public Guid? CurrentActionUserId { get; set; }
- public DateTime? CurrentActionUserExpireTime { get; set; }
+ public ChallengeStateEnum ChallengeState { get; set; }
- public DateTime? SubmitTime { get; set; }
- public DateTime? CheckTime { get; set; }
+ public string CheckResult { get; set; } = String.Empty;
- ///
- /// 通过原因
- ///
- public string ManualPassReason { get; set; } = string.Empty;
+ [Comment("是否一致性核查回退")]
+ public bool? IsCheckBack { get; set; }
- 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;
- //是否一致性核查回退
- public bool? IsCheckBack { get; set; }
+ [Comment("计划外上一访视")]
+ public Guid? OutPlanPreviousVisitId { get; set; }
- public DateTime? CheckBackTime { get; set; }
- public CheckChanllengeTypeEnum CheckChallengeState { get; set; }
- public PDStateEnum PDState { get; set; } = PDStateEnum.None;
+ public RequestBackStateEnum RequestBackState { get; set; }
- public DateTime? CheckPassedTime { get; set; }
+ public bool IsQCConfirmedReupload { get; set; }
- ///
- /// 上一访视
- ///
- public Guid? OutPlanPreviousVisitId { get; set; }
+ public bool IsLostVisit { 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; }
-
- public bool IsPMBackOrReReading { get; set; }
-
- ///
- /// 关闭一致性质疑原因
- ///
- public string CloseTheReason { get; set; } = string.Empty;
-
- public Guid? SubmitUserId { get; set; }
-
-
- public ReadingStatusEnum ReadingStatus { get; set; }
-
- public string VisitImageZipPath { get; set; } = string.Empty;
-
- public PackState PackState { get; set; }
-
- public PackState NoDicomPackState { get; set; }
-
- public string VisitNoDicomImageZipPath { get; set; } = string.Empty;
- }
- ///
- /// 影像下载打包状态
- ///
- public enum PackState
- {
-
- ///
- /// 待打包
- ///
- WaitPack = 0,
-
- ///
- /// 打包中
- ///
- Packing = 1,
-
- ///
- /// 打包完成
- ///
- Packed = 2
- }
+
+}
+///
+/// 影像下载打包状态
+///
+public enum PackState
+{
+
+ ///
+ /// 待打包
+ ///
+ WaitPack = 0,
+
+ ///
+ /// 打包中
+ ///
+ Packing = 1,
+
+ ///
+ /// 打包完成
+ ///
+ Packed = 2
}
diff --git a/IRaCIS.Core.Domain/Visit/VisitStage.cs b/IRaCIS.Core.Domain/Visit/VisitStage.cs
index 9cc0b18c0..c462fd8f4 100644
--- a/IRaCIS.Core.Domain/Visit/VisitStage.cs
+++ b/IRaCIS.Core.Domain/Visit/VisitStage.cs
@@ -12,7 +12,7 @@
public string BlindName { get; set; } = string.Empty;
- [Column(TypeName = "decimal(18,1)")]
+ [DecimalPrecision(18, 1)]
public decimal VisitNum { get; set; }
public string VisitName { get; set; } = string.Empty;
public int VisitDay { get; set; }