//--------------------------------------------------------------------
//     此代码由T4模板自动生成  byzhouhang 20210918
//	   生成时间 2022-08-26 10:38:09 
//     对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
using System;
using IRaCIS.Core.Domain.Share;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Collections.Generic;

namespace IRaCIS.Core.Domain.Models
{
	 ///<summary>
	 /// 表格问题答案行数据
	 ///</summary>
	 [Table("ReadingTableAnswerRowInfo")]	
	 public class ReadingTableAnswerRowInfo : Entity, IAuditAdd, IAuditUpdate, ISoftDelete
	{
		[JsonIgnore]
		[ForeignKey("InstanceId")]
		public DicomInstance Instance { get; set; }

		/// <summary>
		/// 第一层的Question
		/// </summary>
		public Guid QuestionId { get; set; }

		/// <summary>
		/// VisitTaskId
		/// </summary>
		public Guid VisitTaskId { get; set; }
	
		/// <summary>
        /// TrialId
        /// </summary>
		public Guid TrialId { get; set; }


		/// <summary>
		/// InstanceId
		/// </summary>
		public Guid? InstanceId { get; set; }

		/// <summary>
		/// SeriesId
		/// </summary>
		public Guid? SeriesId { get; set; }


		/// <summary>
		/// StudyId
		/// </summary>
		public Guid? StudyId { get; set; }

		public bool IsCanEditPosition { get; set; } = false;


		/// <summary>
		/// 是Dicom阅片
		/// </summary>
		public bool IsDicomReading { get; set; } = true;

		/// <summary>
		/// RowIndex
		/// </summary>
		public decimal RowIndex { get; set; }

		/// <summary>
		/// MeasureData
		/// </summary>
		public string MeasureData { get; set; } = string.Empty;
	
		/// <summary>
        /// CreateTime
        /// </summary>
		public DateTime CreateTime { get; set; }

		/// <summary>
		/// 是否是当前任务添加
		/// </summary>
		public bool IsCurrentTaskAdd { get; set; } = false;


		/// <summary>
		/// SplitRowId
		/// </summary>
		public Guid? SplitRowId { get; set; }


		/// <summary>
		/// MergeRowId
		/// </summary>
		public Guid? MergeRowId { get; set; }

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

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

		/// <summary>
		/// Base64编码
		/// </summary>
		public string PictureBaseStr { get; set; } = string.Empty;

		/// <summary>
		/// 第一次添加的任务ID
		/// </summary>
		public decimal FristAddTaskNum { get; set; } = 0;


		public SplitOrMergeType? SplitOrMergeType { get; set; }

		/// <summary>
		/// CreateUserId
		/// </summary>
		public Guid CreateUserId { get; set; }


		public int? NumberOfFrames { get; set; }

		public Guid UpdateUserId { get; set; }
		//string UpdateUserName { get; set; }
		public DateTime UpdateTime { get; set; }


	

		public bool IsDeleted { get; set; }

		public DateTime? DeletedTime { get; set; }

		public Guid? DeleteUserId { get; set; }

		[JsonIgnore]
		[ForeignKey("SplitRowId")]
		public ReadingTableAnswerRowInfo SplitRow { get; set; }
		[JsonIgnore]
		[ForeignKey("MergeRowId")]
		public ReadingTableAnswerRowInfo MergeRow { get; set; }
		[JsonIgnore]
		[ForeignKey("QuestionId")]
		public ReadingQuestionTrial ReadingQuestionTrial { get; set; }


        public string RowMark
        {

            get
            {

                Dictionary<int, string> splitLesionDic = new Dictionary<int, string>()
                  {
                       {1, "a"  },
                       {2, "b"  },
                       {3, "c"  },
                       {4, "d"  },
                       {5, "e"  },
                       {6, "f"  },
                       {7, "g"  },
                       {8, "h"  },
                       {9, "i"  },
                       {10, "j"  },
                       {11, "k"  },
                       {12, "l"  },
                       {13, "m"  },
                       {14, "n"  },
                       {15, "o"  },
                       {16, "p"  },
                       {17, "q"  },
                       {18, "r"  },
                       {19, "s"  },
                       {20, "t"  },
                       {21, "u"  },
                       {22, "v"  },
                       {23, "w"  },
                       {24, "x"  },
                       {25, "y"  },
                       {26, "z"  },
	             
                  };
                if (RowIndex % 1 == 0)
                {
                    return decimal.ToInt32(RowIndex).ToString().PadLeft(2, '0');
                }
                else
                {
                    return Math.Floor(RowIndex).ToString().PadLeft(2, '0') + splitLesionDic[decimal.ToInt32((RowIndex % 1) * 100)];
                }

            }
        }


    }


}