using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace IRaCIS.Core.Domain.Models
{
    [Table("SCPStudy")]
    public class SCPStudy : BaseFullDeleteAuditEntity
    {

        #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; }

        #endregion



        //0 未知  1 单重  2 双重
        public bool IsDoubleReview { get; set; }

      

        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public Guid SeqId { get; set; }

        [ForeignKey("PatientId")]
        [JsonIgnore]
        public SCPPatient Patient { 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; }

       


    }
}