using IRaCIS.Core.Domain.Share;

namespace IRaCIS.Core.Application.Contracts
{
    public class DicomInstanceDTO
    {
        public Guid Id { get; set;}
        public Guid StudyId { get; set; }
        public Guid SeriesId { get; set; }

        public int NumberOfFrames { get; set; }
        public string StudyInstanceUid { get; set; } = string.Empty;
        public string SeriesInstanceUid { get; set; } = string.Empty;
        public string SopInstanceUid { get; set; } = string.Empty;
        public int InstanceNumber { get; set; }
        public DateTime? InstanceTime { get; set; }
        public bool CPIStatus { get; set; }
        public int ImageRows { get; set; }
        public int ImageColumns { get; set; }
        public int SliceLocation { get; set; }

        public Guid TrialId { get; set; }
        public Guid SiteId { get; set; }
        public Guid SubjectId { get; set; }
        public Guid SubjectVisitId { get; set; }

        public string Path { get; set; }


        public bool IsDeleted { get; set; }
        public bool IsReading { get; set; } = true;

    }


    public class DicomTrialSiteSubjectInfo
    {
        public string TrialSiteCode { get; set; } = string.Empty;
        public string SiteCode { get; set; } = string.Empty;
        public string SiteName { get; set; } = string.Empty;
        public string SubjectCode { get; set; } = string.Empty;
        public int? SubjectAge { get; set; }
        public string SubjectSex { get; set; } = string.Empty;
        public string TrialCode { get; set; } = string.Empty;
        public string ResearchProgramNo { get; set; } = string.Empty;
        public string TrialIndication { get; set; } = string.Empty;

        public CheckStateEnum CheckState { get; set; }


        public decimal VisitNum { get; set; }
        public string SVUPDES { get; set; } = string.Empty;
        public string VisitName { get; set; } = string.Empty;
        public string Sponsor { get; set; } = string.Empty;
        public Guid TrialId { get; set; }
        public Guid SiteId { get; set; }
        public Guid SubjectId { get; set; }
        public Guid SubjectVisitId { get; set; }

        public SubmitStateEnum SubmitState { get; set; }

        public AuditStateEnum AuditState { get; set; }
        public ForwardStateEnum ForwardState { get; set; }

        //public string SubjectName => LastName + " / " + FirstName;
        //public string FirstName { get; set; } = string.Empty;
        //public string LastName { get; set; } = string.Empty;
        //public bool IsDoubleReview { get; set; }
    }
}