private HealthRecordItemDataTableView ApplyEffectiveView(
            ApplicationConnection connection)
        {
            HealthRecordItemDataTableView effectiveView =
                HealthRecordItemDataTableView.MultipleTypeTable;

            HealthRecordItemTypeDefinition typeDefinition = null;

            if (Filter.TypeIds.Count == 1 &&
                View != HealthRecordItemDataTableView.MultipleTypeTable)
            {
                typeDefinition =
                    ItemTypeManager.GetHealthRecordItemTypeDefinition(
                        this.Filter.TypeIds[0],
                        connection);

                if (typeDefinition != null &&
                    typeDefinition.ColumnDefinitions.Count > 0)
                {
                    effectiveView
                        = HealthRecordItemDataTableView.SingleTypeTable;
                    _singleTypeDefinition = typeDefinition;

                    foreach (
                        ItemTypeDataColumn column in
                        typeDefinition.ColumnDefinitions)
                    {
                        _displayColumns.Add(
                            column.ColumnName, column.Clone());
                    }

                    this.Filter.View.TransformsToApply.Clear();
                    this.Filter.View.TransformsToApply.Add("stt");
                }
            }

            if (_singleTypeDefinition == null)
            {
                typeDefinition =
                    ItemTypeManager.GetBaseHealthRecordItemTypeDefinition(
                        connection);

                effectiveView
                    = HealthRecordItemDataTableView.MultipleTypeTable;

                foreach (
                    ItemTypeDataColumn column in
                    typeDefinition.ColumnDefinitions)
                {
                    _displayColumns.Add(column.ColumnName, column.Clone());
                }

                this.Filter.View.TransformsToApply.Clear();
                this.Filter.View.TransformsToApply.Add("mtt");
            }

            return effectiveView;
        }
        /// <summary>
        /// Constructs an instance of <see cref="HealthRecordItemTypeDefinition"/> from the specified
        /// XML.
        /// </summary>
        /// 
        /// <param name="typeNavigator">
        /// XML navigator containing the information needed to construct the instance. This XML
        /// must adhere to the schema for a ThingType as defined by response-getthingtype.xsd.
        /// </param>
        /// 
        /// <returns>
        /// An instance of <see cref="HealthRecordItemTypeDefinition"/> constructed from the 
        /// specified XML.
        /// </returns>
        /// 
        public static HealthRecordItemTypeDefinition CreateFromXml(
            XPathNavigator typeNavigator)
        {
            HealthRecordItemTypeDefinition typeDefinition =
                new HealthRecordItemTypeDefinition();

            typeDefinition.ParseXml(typeNavigator);
            return typeDefinition;
        }