namespace IRaCIS.Core.Domain.Models;

[Comment("项目中心 - 推送检查")]
[Table("SCPStudy")]
public class SCPStudy : BaseFullDeleteAuditEntity, IEntitySeqId
{

    #region 导航属性
    [JsonIgnore]
    public List<SCPInstance> InstanceList { get; set; }

    [JsonIgnore]
    public List<SCPSeries> SeriesList { get; set; }
    [JsonIgnore]
    public SubjectVisit SubjectVisit { get; set; }

    [JsonIgnore]
    public Trial Trial { get; set; }

    [JsonIgnore]
    public TrialSite TrialSite { get; set; }

    [ForeignKey("PatientId")]
    [JsonIgnore]
    public SCPPatient Patient { get; set; }

    #endregion
    public Guid SeqId { get; set; }

    public Guid PatientId { get; set; }

    public string StudyInstanceUid { get; set; } = string.Empty;
    public DateTime? StudyTime { get; set; }
    public string Modalities { get; set; } = string.Empty;
    public string Description { get; set; } = string.Empty;
    public int SeriesCount { get; set; } = 0;
    public int InstanceCount { get; set; } = 0;

    public string InstitutionName { get; set; } = string.Empty;
    public string PatientIdStr { get; set; } = string.Empty;
    public string PatientName { get; set; } = string.Empty;
    public string PatientAge { get; set; } = string.Empty;
    public string PatientSex { get; set; } = string.Empty;

    public string StudyId { get; set; } = string.Empty;
    public string AccessionNumber { get; set; } = string.Empty;
    public string PatientBirthDate { get; set; } = string.Empty;
    public string AcquisitionTime { get; set; } = string.Empty;
    public string AcquisitionNumber { get; set; } = string.Empty;
    public string TriggerTime { get; set; } = string.Empty;

    public string BodyPartExamined { get; set; } = string.Empty;

    public string BodyPartForEdit { get; set; } = string.Empty;

    public string ModalityForEdit { get; set; } = string.Empty;

    public string CallingAE { get; set; } = string.Empty;

    public string CalledAE { get; set; } = string.Empty;

    public bool IsUploadFinished { get; set; }
    public Guid TrialId { get; set; }
    public Guid TrialSiteId { get; set; }

    public Guid? SubjectVisitId { get; set; }
}