namespace IRaCIS.Core.Domain.Models;

[Comment("项目阅片 - 任务后上传检查")]
[Table("TaskStudy")]
public class TaskStudy : BaseFullDeleteAuditEntity, IEntitySeqId
{
    #region 导航属性
    [JsonIgnore]
    [ForeignKey("VisitTaskId")]
    public VisitTask VisitTask { get; set; }


    [JsonIgnore]
    public List<TaskInstance> InstanceList { get; set; }

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

    [JsonIgnore]
    [ForeignKey("SubjectId")]
    public Subject Subject { get; set; }

    [JsonIgnore]
    [ForeignKey("SubjectVisitId")]
    public SubjectVisit SubjectVisit { get; set; }
    #endregion

    public Guid SeqId { get; set; }
    public Guid TrialId { get; set; }
    public Guid SubjectId { get; set; }

    public Guid? SubjectVisitId { get; set; }

    public Guid VisitTaskId { get; set; }
    public int Code { get; set; } = 0;

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

    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 PatientId { 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 BodyPartForEditOther { get; set; }

    #region DIR 增加字段

    public string DicomStudyDate { get; set; }

    public string DicomStudyTime { get; set; }

    public string StudyDIRPath { get; set; }

    #endregion

    #region 模态支持增加字段

    public string Manufacturer { get; set; }

    public string ManufacturerModelName { get; set; }

    public string DeviceSerialNumber { get; set; }
    public string DeviceUID { get; set; }

    public string SoftwareVersions { get; set; }

    public string PatientWeight { get; set; }

    #endregion
}
