private void ReadCell(Patient patient, IRow row, PatientNACDates nacDates, int cellIndex)
        {
            string header          = _headers.ElementAt(cellIndex);
            string newObjectFields = (string)_dictonary[header];
            string propertyValue   = row.GetCell(cellIndex, MissingCellPolicy.CREATE_NULL_AS_BLANK).ToString();

            if (!string.IsNullOrEmpty(propertyValue) && newObjectFields != null && FirstTwoCellsNotEmpty(row))
            {
                var    klassAndField = newObjectFields.Split(".");
                string propertyName  = klassAndField[1];
                if (klassAndField[0] == "PatientNACDates")
                {
                    if (propertyName.Contains("CPA"))
                    {
                        var cpaBand = Int32.Parse(propertyValue);
                        nacDates.CPABand = cpaBand;
                    }
                    else
                    {
                        Type         type         = nacDates.GetType();
                        PropertyInfo propertyInfo = type.GetProperty(propertyName);
                        if (propertyInfo.PropertyType == typeof(DateTime) || propertyInfo.PropertyType == typeof(DateTime?))
                        {
                            propertyInfo.
                            SetValue(nacDates, Convert.ChangeType(propertyValue, typeof(DateTime)), null);
                        }
                    }
                }
            }
        }